狠狠干影院/欧美午夜电影在线观看/高黄文/国产精品一区二区在线观看完整版

C語言順序表實(shí)驗(yàn)報(bào)告

| 瀏覽次數(shù):

  C 語言順序表實(shí)驗(yàn)報(bào)告

  編制

 精選 表格 審核

 批準(zhǔn)

 生效日期

 地址:

 電話:

  傳真:

  郵編:

  實(shí)驗(yàn)報(bào)告要求 一、實(shí)驗(yàn)?zāi)康?二、實(shí)驗(yàn)內(nèi)容 三、程序流程圖 四、實(shí)驗(yàn)結(jié)果(要求檢測(cè)所有情況的正確性,寫出測(cè)試條件及相應(yīng)的測(cè)試結(jié)果)

 五、完成思考題 實(shí)驗(yàn)一

 順序表的基本操作(2 學(xué)時(shí)) 一、 實(shí)驗(yàn)?zāi)康?了解順序表的邏輯特征,掌握順序表的描述方法、特點(diǎn)及有關(guān)的概念,掌握順序表上的插入和刪除等基本操作算法。

 二、實(shí)驗(yàn)內(nèi)容 在順序表 List

 []中,實(shí)現(xiàn)順序表的基本操作,包括:初始化順序表,在表中插入元素、刪除元素。

 基本要求:

 (1)

 順序表的元素個(gè)數(shù)可隨意設(shè)定; (2)

 可連續(xù)測(cè)試任意多個(gè)元素的插入、刪除,(插 入、刪除位置及要插入元素?cái)?shù)值均從鍵盤輸入); (3)

 任一操作結(jié)束后將順序表中的內(nèi)容輸出; (4)

 可由用戶選擇退出程序。

 三、實(shí)驗(yàn)要點(diǎn)說明 順序表又稱為線性表的順序存儲(chǔ)結(jié)構(gòu),它是用一組地址連續(xù)的存儲(chǔ)單元依次存放線性表的各個(gè)元素。

  可按如下格式定義順序表:

 #define MAXLEN 50

 /* 定義順序表最大元素個(gè)數(shù) 50 */

  typedef struct{ datatype List[MAXLEN];

  /* 定義順序表 List */

  int Num;

  /* 定義順序表表長(zhǎng) */ }Seqlist;

 模塊劃分:(1)initiq( )函數(shù):初始化順序表

 (2)insertq( )函數(shù):實(shí)現(xiàn)插入功能

 (3)deleteq( )函數(shù):實(shí)現(xiàn)刪除功能

 (4)print( )函數(shù):實(shí)現(xiàn)輸出功能 四、參考源程序 #include <> #define MAXLEN 50 typedef int datatype; typedef struct{

  datatype List[MAXLEN];

  int Num;

  }Seqlist; void initiq(Seqlist *la ); int insertq(Seqlist *la,int n); int deleteq(Seqlist *la,int n); int print(Seqlist *la);

 void main() {

 Seqlist la;

 int s,n;

 /* s 選擇輸入, n 插入或刪除數(shù)據(jù)的個(gè)數(shù)*/

 printf("請(qǐng)輸入你的選擇: 1---initiate 2---insert 3---delete 4---print 5---exit\nyour choice =");

 scanf("%d",&s);

 while(s!=5)

 { if(s==1)

  {

  initiq( &la );

 printf("完成初始化 !\n");

  }

  else if(s==2)

  {

  printf("請(qǐng)輸入待插入的數(shù)據(jù)個(gè)數(shù):");

 scanf("%d",&n);

  insertq(&la,n);

 print(&la);

  }

  else if(s==3)

  {

  printf("請(qǐng)輸入待刪除的數(shù)據(jù)個(gè)數(shù):");

 scanf("%d",&n);

 deleteq(&la,n);

 print(&la);

  }

  else if(s==4)

  {

  print(&la);

  }

  else

 printf("你的選擇是錯(cuò)誤的!\n ");

  printf("請(qǐng)輸入你的選擇: 1---initiate 2---insert 3---delete 4---print 5---exit\nyour choice =");

  scanf("%d",&s);

  }

 } /*初始化*/ void initiq(Seqlist *la ) {

 la-> Num=0;

 } /*插入*/ int insertq(Seqlist *la,int n) {

 int i,j;

 /*

 i 插入位置, j 順序表下標(biāo) */

 datatype x;

  /*

 x 插入數(shù)據(jù) */

 while(n)

 {

  if (la->Num>=MAXLEN-1)

  {

  printf ("\n 表滿,不能插入!插入未完成,還有%d 個(gè)數(shù)據(jù)未插入\n",n);

 return 0;

  }

  printf("請(qǐng)輸入插入的位置和數(shù)據(jù):");

  scanf("%d%d",&i,&x);

  if (i<0||i>la->Num)

  {

 printf ("\n 插入位置不合理!\n");

  }

  else

  {

 if (i== la->Num)

  la->List[i]=x;

 else

  {

  for ( j=la->Num; j>i; j--)

 la->List[j]=la->List[j-1];

 la->List[i]=x;

  }

 la->Num++;

 n--;

 }

  }

 printf("插入完成\n");

 return 1;

 } /*刪除*/ int deleteq(Seqlist *la,int n) {

 int i,j;

 /*

 i 刪除位置, j 順序表下標(biāo) */

 while(n)

 {

  if (la->Num<=0)

  {

  printf ("\n 表空,不能刪除!\n");

 return 0;

 }

  printf("請(qǐng)輸入刪除的位置:");

  scanf("%d",&i);

  if (i<0||i>=la->Num)

  {

  printf ("\n 刪除位置錯(cuò)誤!\n");

 }

  else

  {

  for ( j=i+1; j<la->Num; j++)

  la->List[j-1]=la->List[j];

 la->Num--;

 n--;

 }

 }

 printf("刪除完成!\n");

 return 1;

  } /*顯示輸出*/ int print (Seqlist *la) {

 int m;

 if (la->Num<=0)

 {

  printf("順序表為空!\n");

  return 0;

  }

 else

 {

  printf("當(dāng)前的順序表為:\n");

  for(m=0;m<la->Num;m++)

 printf("List[%d]=%d

 ",m,la->List[m]);

  printf("\n 表長(zhǎng)為%d\n",la->Num);

  return 1;

  }

  } 五、思考題 1.設(shè)順序表 L中的數(shù)據(jù)元素按遞增排列,編寫一個(gè)算法,將數(shù)據(jù)元素 x插入到順序表 L的適當(dāng)位置上,以保持順序表的有序性。

 2. 設(shè)計(jì)一算法實(shí)現(xiàn)刪除順序表 a 中第 i 個(gè)元素起的 k個(gè)元素。

 typedef struct { int datatype[100];

 int length;

  /*順序表的長(zhǎng)度*/ } SqList; 3. 設(shè)已有線性表 la 的數(shù)據(jù)結(jié)構(gòu)定義同上,編寫一個(gè)算法,刪除順序表 la 中所有值為 x的數(shù)據(jù)元素。

 4.如何用程序?qū)崿F(xiàn)將兩個(gè)不同的順序表復(fù)制到一個(gè)順序表中

推薦訪問: 順序 語言 實(shí)驗(yàn)

【C語言順序表實(shí)驗(yàn)報(bào)告】相關(guān)推薦

工作總結(jié)最新推薦

NEW