資料結構第 1次上機練習題

2021-09-01 12:28:05 字數 2945 閱讀 3455

#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 什麼是資訊?廣義地講,資訊就是訊息。宇宙三要素 物質 能量 資訊 之一。它是現實世界各種事物在人們頭腦中的反映。此外,人們通過科學儀器能夠認識到的也是資訊。資訊的特徵為 可識別 ...