#include #define maxsize 10 //線性表的最大長度
#define ok 1
#define error 0
typedef int elemtype;//順序表中存放整形元素
typedef struct
seqlist;
/*查詢操作(按內容查詢)*/
int locate(seqlist l,elemtype e)
/*判斷表是否已滿*/
if(l->last>=maxsize-1)
int k;
for(k=l->last;k>=i-i;k--)
l->elem[k+1]=l->elem[k];
l->elem[i-1]=e;
l->last++;
return(ok);
}/*刪除操作:刪除第i個資料元素*/
int dellist(seqlist *l,int i,elemtype *e)
*e=l->elem[i-1];
int k;
for(k=i;klast;k++)
l->last--;
return(ok);
}int main(void)
}; l.last=5;
elemtype e;
int i;
printf("查詢操作:查詢第3個資料元素,結果為:%d\n",getdata(l,3));
printf("查詢操作:查詢資料元素為4的元素,結果為:%d\n",locate(l,4));
printf("查詢操作:查詢資料元素為7的元素,結果為:%d\n",locate(l,7));
printf("\n插入操作:在第3個位置前插入元素8,插入後的順序表為:");
inslist(&l,3,8);
for(i=0;i#define maxsize 10 //線性表的最大長度
#define ok 1
#define error 0
typedef int elemtype;//順序表中存放整形元素
typedef struct
seqlist;
/*查詢操作(按內容查詢)*/
int locate(seqlist l,elemtype e)
/*判斷表是否已滿*/
if(l->last>=maxsize-1)
int k;
for(k=l->last;k>=i-1;k--)
l->elem[k+1]=l->elem[k];
l->elem[i-1]=e;
l->last++;
return(ok);
}/*刪除操作:刪除第i個資料元素*/
int dellist(seqlist *l,int i,elemtype *e)
*e=l->elem[i-1];
int k;
for(k=i;klast;k++)
l->last--;
return(ok);
}int main(void)
}; l.last=6;
elemtype e;
int i;
//在螢幕上列印原表
printf("原表為:");
for(i=0;iputchar('\n');
//測試刪除操作
printf("查詢操作:查詢第3個資料元素,結果為:%d\n",getdata(l,3));
printf("查詢操作:查詢資料元素為4的元素,結果為:%d\n",locate(l,4));
printf("查詢操作:查詢資料元素為7的元素,結果為:%d\n",locate(l,7));
printf("查詢操作:查詢資料元素為2的元素,結果為:%d\n",locate(l,2));
//測試插入操作
printf("\n插入操作:在第3個位置前插入元素8,插入後的順序表為:");
inslist(&l,3,8);
for(i=0;iprintf("%d ",l.elem[i]);
printf("\n插入操作:在第8個位置前插入元素8,插入後的順序表為:");
inslist(&l,8,8);
//測試刪除操作
printf("\n刪除操作:刪除第5個元素,刪除後的順序表為:");
dellist(&l,5,&e);
for(i=0;iprintf("%d ",l.elem[i]);
printf("\n刪除操作:刪除第0個元素,刪除後的順序表為:");
dellist(&l,0,&e);
printf("\n刪除操作:刪除第13個元素,刪除後的順序表為:");
dellist(&l,13,&e);
//自主操作測試
int input,index;
char ch;
putchar('\n');
puts("現在的表為:");
for(i=0;iprintf("%d ",l.elem[i]);
puts("\n請輸入您想要操作的元素序號:");
scanf("%d",&input);
printf("請選擇操作:\n");
printf("*****************************************\n");
printf("a)查詢 b)插入 c)刪除\n");
printf("*****************************************\n");
getchar();
scanf("%c",&ch);
switch(ch)
puts("處理後的表為:");
for(i=0;iprintf("%d ",l.elem[i]);
return 0;
}
資料結構練習題
設pa,pb分別指向兩個帶頭結點的有序 從小到大 單鏈表。仔細閱讀如下的程式,並回答問題 1 程式的功能 2 s1,s2中值的含義 3 pa,pb中值的含義。include include typedef struct list list void exam list pa,list pb else...
資料結構 鍊錶 練習題1
2.已知乙個帶表頭結點的單鏈表,結點結構為data link,假設該鍊錶只給出了頭指標list。在不改變鍊錶的前提下,請設計乙個盡可能高效的演算法,查詢鍊錶中倒數第k個位置上的結點 k正為整數 若查詢成功,演算法輸出該結點的data域的值,並返回1 否則,只返回0.要求 1 描述演算法的基本設計思想...
資料結構 緒論 練習題
a.找出資料結構的合理性 b.研究演算法的輸入 輸出關係 c.分析演算法的效率以求改進 d.分析演算法的易讀性 答案 c 什麼是資訊?廣義地講,資訊就是訊息。宇宙三要素 物質 能量 資訊 之一。它是現實世界各種事物在人們頭腦中的反映。此外,人們通過科學儀器能夠認識到的也是資訊。資訊的特徵為 可識別 ...