實(shí)驗(yàn)報(bào)告專用紙2_第1頁(yè)
實(shí)驗(yàn)報(bào)告專用紙2_第2頁(yè)
實(shí)驗(yàn)報(bào)告專用紙2_第3頁(yè)
實(shí)驗(yàn)報(bào)告專用紙2_第4頁(yè)
實(shí)驗(yàn)報(bào)告專用紙2_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1課程名稱數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)項(xiàng)目名稱線性表任課教師曹軍梅指導(dǎo)教師曹軍梅實(shí)驗(yàn)組別第組同組者教師評(píng)語(yǔ)及成績(jī):實(shí)驗(yàn)成績(jī):教師簽字:(請(qǐng)按照實(shí)驗(yàn)報(bào)告的有關(guān)要求書寫,一般必須包括:1、實(shí)驗(yàn)?zāi)康模?、實(shí)驗(yàn)內(nèi)容;3、實(shí)驗(yàn)步驟與方法;4、實(shí)驗(yàn)數(shù)據(jù)與程序清單;5、出現(xiàn)的問(wèn)題及解決方法;6、實(shí)驗(yàn)結(jié)果、結(jié)果分析與體會(huì)等內(nèi)容。)1、實(shí)驗(yàn)?zāi)康模海?)、掌握線性表的基本運(yùn)算;(2)、掌握順序存儲(chǔ)的概念,學(xué)會(huì)對(duì)順序存儲(chǔ)結(jié)構(gòu)進(jìn)行操作;(3)、加深對(duì)順序存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)的理解,解決實(shí)際問(wèn)題。2、實(shí)驗(yàn)內(nèi)容:(1)、線性表的順序存儲(chǔ)的基本操作;(2)、線性表的鏈?zhǔn)酱鎯?chǔ)的基本操作;(3)、

2、線性表的應(yīng)用-一元多項(xiàng)式的表示及相加都基本操作。3、實(shí)驗(yàn)步驟與方法:(1)、采用線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu);(2)、用菜單的形式完成線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的基本操作;(3)、采用線性表的順序存儲(chǔ)結(jié)構(gòu);(4)、用菜單的形式完成線性表順序存儲(chǔ)結(jié)構(gòu)的基本操作;(5)、運(yùn)用線性表鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)解決常見實(shí)際應(yīng)用問(wèn)題;(6)、運(yùn)用線性表順序結(jié)構(gòu)解決常見實(shí)際應(yīng)用問(wèn)題。4、實(shí)驗(yàn)數(shù)據(jù)與程序清單:實(shí)驗(yàn)一:線性表中查找元素位置#in elude #in elude #defi ne NULL 0#defi ne OVERFLOW -2實(shí)驗(yàn)室:機(jī)號(hào):實(shí)驗(yàn)日期:年月日延安大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)報(bào)告附頁(yè)學(xué)號(hào)1060315014032姓名

3、陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表#defi ne OK 1#defi ne ERROR 0#defi ne TRUE 1#defi ne FALSE 0#defi ne ElemType int#define MAXSIZE100/*此處的宏定義常量表示線性表可能達(dá)到的最大長(zhǎng)度*/typedef structElemType elemMAXSIZE;/*線性表占用的數(shù)組空間 */intlast; /*記錄線性表中最后一個(gè)元素在數(shù)組elem中的位置(下標(biāo)值),空表置為-1*/SeqList;int Locate(SeqList L, ElemType e)int i=0;/*i為掃描計(jì)數(shù)器,

4、初值為0,即從第一個(gè)元素開始比較*/while (i=L.last )&(L.elemi!=e)i+;if (i=L.last)return(i+1); /*若找到值為e的元素,則返回其序號(hào)*/elsereturn(-1);/*若沒找到,則返回空序號(hào) */void mai n()SeqList l;in t p,q,r;int i;printf(請(qǐng)輸入線性表的長(zhǎng)度:”);scan f(%d,&r);l.last = r-1;printf(請(qǐng)輸入線性表的各元素值:n);for(i=0; i=l.last; i+)sea nf(%d, & l.elemi);printf(”請(qǐng)輸入要查找的元素值:n

5、);scan f(%d, &q);p=Locate(l,q);if(p = -1)printf(在此線性表中沒有該元素!n);elseprintf(該元素在線性表中的位置為:%dn,p);學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表請(qǐng)輸入我性表的長(zhǎng)jH : B 清輸入城性義的各元素值;IJ 4 7 8 5 2 請(qǐng)輸入要查找的元素值: 5逆元素在找性表中的位置為活 Ptpss any kry to rent i nip實(shí)驗(yàn)二:線性表中插入元素操作#i nclude #i nclude #in elude #defi ne OK1#defi ne ERROR0#defi

6、ne TRUE 1#defi ne FALSE 0#defi ne ElemType int#define MAXSIZE100/*此處的宏定義常量表示線性表可能達(dá)到的最大長(zhǎng)度*/typedef structElemType elemMAXSIZE;/*線性表占用的數(shù)組空間 */intlast;/*記錄線性表中最后一個(gè)元素在數(shù)組elem中的位置(下標(biāo)值),空表置為-1*/SeqList;intIn sList(SeqList *L,i nt i,ElemType e)int k;if(iL-last+2) /*首先判斷插入位置是否合法*/學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1

7、實(shí)驗(yàn)名稱線性表printf(”插入位置i值不合法”);return(ERROR);if(L-last= MAXSIZE-1)printf(”表已滿無(wú)法插入);return(ERROR);for(k=L-last;k=i-1;k-)/*為插入兀素而移動(dòng)位置 */L-elemk+1=L-elemk;L-elemi-1=e;/*在C語(yǔ)言數(shù)組中,第i個(gè)兀素的下標(biāo)為i-1*/L-last+;return(OK);void mai n()SeqList *l;in t p,q,r;int i;l=(SeqList*)malloc(sizeof(SeqList);printf(請(qǐng)輸入線性表的長(zhǎng)度:”);sc

8、an f(%d,&r);l-last = r-1;printf(請(qǐng)輸入線性表的各兀素值:n);for(i=0; ilast; i+)scan f(%d, &l-elemi);printf(請(qǐng)輸入要插入的位置:n);scan f(%d,&p);printf(請(qǐng)輸入要插入的兀素值:n);scan f(%d, &q);In sList(l,p,q);for(i=0; ilast; i+)prin tf(%d,l-elemi);學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表CAUier 斜聲渙心 pl-gjir- Q X幘輸人線性羔的縣岌:6幃輸入純性表的各元養(yǎng)值:1 4 7

9、S 5 2請(qǐng)輸入要插入的位蛋:3請(qǐng)輸入姿捆入的元棗脩:F14 6 7 85 2 Press any key to cont inue實(shí)驗(yàn)三:線性表中刪除元素操作#i nclude #i nclude #in elude #defi ne OK 1#defi ne ERROR 0#defi ne TRUE 1#defi ne FALSE 0#defi ne ElemType int#define MAXSIZE 100/*此處的宏定義常量表示線性表可能達(dá)到的最大長(zhǎng)度*/typedef structElemType elemMAXSIZE; /*線性表占用的數(shù)組空間*/intlast; /*記錄線

10、性表中最后一個(gè)元素在數(shù)組elem中的位置(下標(biāo)值),空表置為-1*/SeqList;intDelList(SeqList *L,int i,ElemType *e)int k;if(iL-last+1)printf(刪除位置不合法r);return(ERROR);*e = L-elemi-1;/*將刪除的元素存放到e所指向的變量中*/for(k=i; ilast; k+)學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表L-elemk-1 = L-elemk;/*將后面的兀素依次前移*/L-last-; return(OK);void mai n()SeqList *l;i

11、n t p,r;int *q;int i;l = (SeqList*)malloc(sizeof(SeqList);q = (in t*)malloc(sizeof(i nt);printf(請(qǐng)輸入線性表的長(zhǎng)度:”);scan f(%d,&r);l-last = r-1;printf(”請(qǐng)輸入線性表的各兀素值:n);for(i=0; ilast; i+)scan f(%d, &l-elemi);printf(請(qǐng)輸入要?jiǎng)h除的兀素位置:n);scan f(%d,&p);DelList(l,p,q);printf(刪除的兀素值為:%dn,*q);#in elude #defi ne OK 1學(xué)號(hào)10

12、60315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表#defi ne ERROR0#defi ne TRUE 1#defi ne FALSE 0#defi ne ElemType int*/#define MAXSIZE 100/*此處的宏定義常量表示線性表可能達(dá)到的最大長(zhǎng)度typedef structElemType elemMAXSIZE;/*線性表占用的數(shù)組空間last;/*記錄線性表中最后一個(gè)元素在數(shù)組int*/elem中的位置(下標(biāo)值),空表置為-1*/SeqList;void merge(SeqList *LA,SeqList *LB, SeqList *LC)i=O;j

13、=O;k=O;while(ilast&jlast)j)if(LA-elemielemLC-elemk= LA-elemi;i+;k+;elseLC-elemk=LB-elemj;j+;k+;while(ilast)/*當(dāng)表LA有剩余元素時(shí),則將表LA余下的元素賦給表 LC*/LC-elemk= LA-elemi;k+;LB有剩余元素時(shí),則將表LB余下的元素賦給表 LC*/while( jlast) /* 當(dāng)表LC-elemk= LB-elemj;j+; k+;LC-last=LA-last+LB-last+1;void mai n()SeqList *la,*lb,*lc;int r;int

14、i;la=(SeqList*)malloc(sizeof(SeqList);printf(”請(qǐng)輸入線性表 A的長(zhǎng)度:”); scan f(%d,&r);la-last = r-1;printf(請(qǐng)輸入線性表A的各元素值:n);計(jì)科學(xué)號(hào) 1060315014032 姓名 陳世龍 班級(jí)實(shí)驗(yàn)名稱線性表15-1for(i=0; ilast; i+)scan f(%d, &la-elemi);lb=(SeqList*)malloc(sizeof(SeqList);printf(請(qǐng)輸入線性表B的長(zhǎng)度:”);scan f(%d,&r);lb-last = r-1;printf(”請(qǐng)輸入線性表B的各元素值:n

15、);for(i=0; ilast; i+)scan f(%d, &lb-elemi);lc=(SeqList*)malloc(sizeof(SeqList);merge(la,lb,lc);printf(合并后線性表C中的元素為:n);for(i=0; ilast; i+)prin tf(%d ,lc-elemi);實(shí)驗(yàn)五:用頭插法建立單鏈表#in clude #in elude #in elude #defi ne OK1#defi ne ERROR0#defi ne TRUE 1#defi ne FALSE 0#in clude 學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)

16、名稱線性表#defi ne ElemType chartypedef struct Node/* 結(jié)點(diǎn)類型疋義 */ElemType data;struct Node* n ext;Node, *LinkList;/* LinkList 為結(jié)構(gòu)指針類型 */Lin kList CreateFromHead()Lin kListL;Node*s;charc;int flag=1;L=(LinkList)malloc(sizeof(Node);/* 建立頭結(jié)點(diǎn) */L-next=NULL;/*建立空的單鏈表 L*/while(flag)/* flag 初值為1,當(dāng)輸入$時(shí),置flag為0 ,建表結(jié)

17、束*/c=getchar();if(c!=$)s=(Node*)malloc(sizeof(Node); /*建立新結(jié)點(diǎn) s*/s-data=c;s-next=L-next;/*將s結(jié)點(diǎn)插入表頭*/L-n ext=s;elseflag=0;return L;void mai n()Lin kList l;Node *p;printf(用頭插法建立單鏈表,請(qǐng)輸入鏈表數(shù)據(jù),以$結(jié)束!n);l = CreateFromHead();p = ln ext;while(p!=NULL)prin tf(%cn,p-data); p=p-n ext;學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)

18、驗(yàn)名稱線性表HI人軸; 遼K單裁表:,請(qǐng)絆人直七克捋以*站取J147852$ 1_58?ress any key to cent inue_半:實(shí)驗(yàn)六:用尾插法建立單鏈表#i nclude #i nclude #in elude #defi ne OK 1#defi ne ERROR 0#defi ne TRUE 1#defi ne FALSE 0typedef char ElemType;typedef struct Node/* 結(jié)點(diǎn)類型定義 */ElemType data;struct Node* n ext;Node, *LinkList;/* LinkList 為結(jié)構(gòu)指針類型 */v

19、oid in it_li nklist(Li nkList *1)/*對(duì)單鏈表進(jìn)行初始化 */*l=(Li nkList)malloc(sizeof(Node);(*l)- next=NULL;void CreateFromT ail(L in kList L)Node *r, *s;char c;int flag =1; /*設(shè)置一個(gè)標(biāo)志,初值為1,當(dāng)輸入$時(shí),flag為0,建表結(jié)束*/r=L;/*r指針動(dòng)態(tài)指向鏈表的當(dāng)前表尾,以便于做尾插入,其初值指向頭結(jié)點(diǎn)*/while(flag)/*循環(huán)輸入表中元素值,將建立新結(jié)點(diǎn)s插入表尾*/c=getchar();if(c!=$)延安大學(xué)計(jì)算機(jī)學(xué)院

20、實(shí)驗(yàn)報(bào)告附頁(yè)計(jì)科學(xué)號(hào) 1060315014032 姓名 陳世龍 班級(jí)實(shí)驗(yàn)名稱線性表15-1s=(Node*)malloc(sizeof(Node);s-data=c;r-n ext=s;r=s;elseflag=0;r-next=NULL; /*將最后一個(gè)結(jié)點(diǎn)的next鏈域置為空,表示鏈表的結(jié)束*/void mai n()Lin kList l;Node *p;in it_li nklist(&l);printf(用尾插法建立單鏈表,請(qǐng)輸入鏈表數(shù)據(jù),以$結(jié)束!n);CreateFromT ail(l);p = l_n ext;while(p!=NULL)prin tf(%cn,p-data);

21、p=p-n ext; C;UseiV3B5lctopDebiiigC p p2aexer用尾插袪建立草鏈表,請(qǐng)輸入鏈表數(shù)據(jù),以$結(jié)束!147852*:45*Ptpss any key to ronr inup半:實(shí)驗(yàn)七:查找線性表結(jié)點(diǎn)值#i nclude #i nclude #in elude #defi ne OK1計(jì)科學(xué)號(hào) 1060315014032 姓名 陳世龍 班級(jí)實(shí)驗(yàn)名稱線性表15-1#defi ne ERROR0#defi ne TRUE 1#defi ne FALSE 0typedef char ElemType;typedef struct Node/* 結(jié)點(diǎn)類型定義 */El

22、emType data;struct Node * n ext;Node, *LinkList;/* LinkList 為結(jié)構(gòu)指針類型 */void in it_li nklist(Li nkList *1)/*對(duì)單鏈表進(jìn)行初始化*/*l=(Li nkList)malloc(sizeof(Node);(*l)- next=NULL;void CreateFromTail(L in kList L)Node *r, *s;char c;int flag =1; /* 設(shè)置一個(gè)標(biāo)志,初值為1,當(dāng)輸入$時(shí),flag為0,建表結(jié)束*/r=L;/*r指針動(dòng)態(tài)指向鏈表的當(dāng)前表尾,以便于做尾插入,其初值指向

23、頭結(jié)點(diǎn)*/while(flag)/*循環(huán)輸入表中元素值,將建立新結(jié)點(diǎn)s插入表尾*/c=getchar();if(c!=$)s=(Node*)malloc(sizeof(Node); s-data=c;r-n ext=s;r=s;elseflag=0;r-next=NULL;/*將最后一個(gè)結(jié)點(diǎn)的next鏈域置為空,表示鏈表的結(jié)束*/Node * Get (Li nkListL, i nt i)int j;Node *p;P=L;j=0;/*從頭結(jié)點(diǎn)開始掃描*/while (p- next!=NULL)&(jnext;/*掃描下一結(jié)點(diǎn)*/j+;/*已掃描結(jié)點(diǎn)計(jì)數(shù)器*/if(i = j)學(xué)號(hào)1060

24、315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表return p;/*找到了第i個(gè)結(jié)點(diǎn)*/elsereturn NULL;/* 找不到,in */void mai n()Lin kList l;Node *p;int j;in it_li nklist(&l);printf(”請(qǐng)輸入鏈表數(shù)據(jù),以$結(jié)束!n);CreateFromT ail(l);p = l_n ext;while(p!=NULL)prin tf(%cn,p-data);p=p-n ext;printf(請(qǐng)輸入要查找的結(jié)點(diǎn)序號(hào):n);scan f(%d,&j);p = Get(l,j);if(p!=NULL)print

25、f(該結(jié)點(diǎn)的值為:%cn,p-data);elseprintf(未找到此結(jié)點(diǎn)!n); 1 *C ;UrpDebug pp 3.exr請(qǐng)輸入謹(jǐn)表散據(jù),以$結(jié)束廠147S52S147卜;2請(qǐng)輸入巻含找的結(jié)點(diǎn)序號(hào):5該結(jié)點(diǎn)的值為啟Press any key to continue實(shí)驗(yàn)八:判斷線性表長(zhǎng)度#in elude #i nclude #in elude 計(jì)科學(xué)號(hào) 1060315014032 姓名 陳世龍 班級(jí)實(shí)驗(yàn)名稱線性表15-1#defi ne OK1#defi ne ERROR0#defi ne TRUE 1#defi ne FALSE 0typedef char ElemType;typ

26、edef struct Node/* 結(jié)點(diǎn)類型定義 */ElemType data;struct Node * n ext;Node, *LinkList;/* LinkList 為結(jié)構(gòu)指針類型 */void in it_li nklist(Li nkList *1)/*對(duì)單鏈表進(jìn)行初始化 */*l=(Li nkList)malloc(sizeof(Node);(*l)- next=NULL;void CreateFromT ail(L in kList L)Node *r, *s;char c;int flag =1; /* 設(shè)置一個(gè)標(biāo)志,初值為1,當(dāng)輸入$時(shí),flag為0,建表結(jié)束*/r=

27、L;/*r指針動(dòng)態(tài)指向鏈表的當(dāng)前表尾,以便于做尾插入,其初值指向頭結(jié)點(diǎn)*/while(flag)/*循環(huán)輸入表中元素值,將建立新結(jié)點(diǎn)s插入表尾*/c=getchar();if(c!=$)s=(Node*)malloc(sizeof(Node);s-data=c;r-n ext=s;r=s;elseflag=0;r-n ext=NULL;/*將最后一個(gè)結(jié)點(diǎn)的next鏈域置為空,表示鏈表的結(jié)束*/int ListLe ngth(Li nkList L)/*求帶頭結(jié)點(diǎn)的單鏈表L的長(zhǎng)度*/Node *p;int j;p=L-n ext;j=0;/*用來(lái)存放單鏈表的長(zhǎng)度*/while(p!=NULL)p

28、=p-n ext;j+;計(jì)科學(xué)號(hào) 1060315014032 姓名 陳世龍 班級(jí)實(shí)驗(yàn)名稱線性表15-1return j; /*j為求得的單鏈表長(zhǎng)度*/void mai n()Lin kList I;Node *p;in it_li nklist(&l);printf(”請(qǐng)輸入鏈表數(shù)據(jù),以$結(jié)束!n);CreateFromT ail(l);p = l_n ext;while(p!=NULL)prin tf(%cn,p-data);p=p-n ext;printf(該單鏈表的長(zhǎng)度為 %dn,ListLength(l);實(shí)驗(yàn)九:線性表結(jié)點(diǎn)插入操作#i nclude #i nclude #in clu

29、de #defi ne OK#defi ne ERROR0#defi ne TRUE 1#defi ne FALSE 0typedef char ElemType;typedef struct Node/* 結(jié)點(diǎn)類型定義 */ElemType data;struct Node* n ext;Node, *LinkList;/* LinkList 為結(jié)構(gòu)指針類型 */延安大學(xué)計(jì)算機(jī)學(xué)院實(shí)驗(yàn)報(bào)告附頁(yè)計(jì)科學(xué)號(hào) 1060315014032 姓名 陳世龍 班級(jí)實(shí)驗(yàn)名稱線性表15-1void in it_li nklist(Li nkList *1)/*對(duì)單鏈表進(jìn)行初始化 */*l=(Li nkList)

30、malloc(sizeof(Node);(*l)- next=NULL;void CreateFromTail(L in kList L)Node *r, *s;char c;int flag =1; /* 設(shè)置一個(gè)標(biāo)志,初值為 1,當(dāng)輸入$時(shí),flag為0,建表結(jié)束*/r=L;/*r指針動(dòng)態(tài)指向鏈表的當(dāng)前表尾,以便于做尾插入,其初值指向頭結(jié)點(diǎn)*/while(flag)/*循環(huán)輸入表中元素值,將建立新結(jié)點(diǎn)s插入表尾*/c=getchar(); if(c!=$)s=(Node*)malloc(sizeof(Node);s-data=c;r-n ext=s;r=s;elseflag=0;r-nex

31、t=NULL; /*將最后一個(gè)結(jié)點(diǎn)的next鏈域置為空,表示鏈表的結(jié)束*/int In sList(L in kList L,i nt i,ElemType e)Node *pre,*s;int k;pre=L;k=0;/*表未查完且未查到第i-1個(gè)時(shí)重復(fù),找到 pre指向第i-1個(gè)*/while(pre!=NULL&kn ext;k=k+1;/*查找第i-1結(jié)點(diǎn)*/if(!pre)/*如當(dāng)前位置pre為空表已找完還未數(shù)到第i個(gè),說(shuō)明插入位置不合理*/printf(插入位置不合理);return ERROR; s=(Node*)malloc(sizeof(Node);/* 申請(qǐng)一個(gè)新的結(jié)點(diǎn)S

32、*/s-data=e;/*值e置入s的數(shù)據(jù)域*/s-next=pre-next;/*修改指針,完成插入操作 */pre_n ext=s;return OK;void mai n()學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表Lin kList l;Node *p;int flag=O;int i;char c;in it_li nklist(&l);printf(”請(qǐng)輸入鏈表數(shù)據(jù),以$結(jié)束!n);CreateFromT ail(l);p = l_n ext; while(p!=NULL)prin tf(%cn,p-data); p=p-n ext;printf(請(qǐng)輸入

33、插入的位置和兀素:n); scan f(%d,%c,&i,&c);flag=In sList(l, i, c);if(flag)printf(插入操作成功!n);elseprintf(插入操作失敗!n);p = l_n ext;while(p!=NULL)prin tf(%cn,p-data);p=p-n ext; CzXUwri:Ki5X0e5ktgpC1ebugCpp5.eEp 口 K|請(qǐng)輸入鏈表數(shù)據(jù)r以$結(jié)東!147852S1452曙輸入插入的位置和元素:3 6插入操作成功!Press any key to continue,實(shí)驗(yàn)十:兩個(gè)單鏈表合并為一個(gè)單鏈表#in elude 學(xué)號(hào)10

34、60315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表#i nclude #in elude #defi ne OK1#defi ne ERROR0#defi ne TRUE 1#define FALSE 0typedef int ElemType;typedef struct Node/* 結(jié)點(diǎn)類型疋義 */ElemType data;struct Node* n ext;Node, *LinkList;/* LinkList 為結(jié)構(gòu)指針類型 */void CreateFromTail(L in kList L)Node *r, *s;char c;intflag =1;r=L;wh

35、ile(flag)scan f(%d,&c);if(c != -1)s=(Node*)malloc(sizeof(Node);s-data=c;r-n ext=s;r=s;elseflag=0;r-next=NULL;/*將最后一個(gè)結(jié)點(diǎn)的 next鏈域置為空,表示鏈表的結(jié)束*/Li nkList MergeLi nkList(Li nkList LA, Li nkList LB) Node *pa,*pb;Node *r;Lin kList LC;pa=LA-n ext;pb=LB-n ext;LC=LA;LC- next=NULL;r=LC;while(pa!=NULL & pb!=NULL

36、)if(pa-data data)r-n ext=pa;r=pa;pa=pa-n ext;學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表elser-n ext=pb;r=pb;pb=pb-n ext;if(pa) /*若表LA未完,將表LA中后續(xù)元素鏈到新表 LC表尾*/r-n ext=pa;else/*否則將表LB中后續(xù)元素鏈到新表LC表尾*/r-n ext=pb;free(LB);return(LC);void mai n()Lin kList la,lb,lc;Node *p;la=(Node * )malloc(sizeof(Node);la- next=NUL

37、L;printf(請(qǐng)輸入單鏈表A中的元素(以-1結(jié)束!):n);CreateFromT ail(la);printf(單鏈表A中元素為:n);p = la-n ext;while(p!=NULL)prin tf(%d,p-data);p=p-n ext;prin tf(n);printf(請(qǐng)輸入單鏈表B中的元素(以-1結(jié)束!):n);lb=(Node * )malloc(sizeof(Node);lb- next=NULL;CreateFromT ail(lb);printf(單鏈表B中元素為:n”); p = lb-n ext;while(p!=NULL)prin tf(%d”,p-data

38、);p=p-n ext;prin tf(n);lc=MergeLi nkList(la,lb);printf(”單鏈表C中元素為:n);p = lc-n ext;while(p!=NULL)計(jì)科學(xué)號(hào) 1060315014032 姓名 陳世龍 班級(jí)實(shí)驗(yàn)名稱線性表15-1prin tf(%d”,p-data);p=p-n ext;f App DataLoi alTe rr pTemp 3604 ODe bugM erge Lin kLisi.exe * _l X請(qǐng)輸入單鏈表A中的元素(以T結(jié)束?。?1 4 71單璉表A中7U素為:141清輸入單鏈老B中的元素(以-1結(jié)束?。? 5 2-1單鍵表B

39、屮元素為:352單鏈衷C審元素為:147852 Press any key to continue實(shí)驗(yàn)十一:循環(huán)鏈表合并操作#i nclude #i nclude #in clude #defi ne OK 1#defi ne ERROR 0#defi ne TRUE 1#defi ne FALSE 0typedef int ElemType;typedef struct Node/* 結(jié)點(diǎn)類型定義 */ElemType data;struct Node* n ext;Node, *LinkList; /* LinkList為結(jié)構(gòu)指針類型 */創(chuàng)建循環(huán)鏈表*/void create_cli n

40、klist(Li nkList I)/*int num;Node *p;l-data=-1;l-n ext=l;printf(請(qǐng)輸入循環(huán)鏈表的元素(以-1結(jié)束):n);sca nf(%d,&n um);學(xué)號(hào)1060315014032姓名陳世龍班級(jí)計(jì)科15-1實(shí)驗(yàn)名稱線性表while( num != -1)p=(Node*)malloc(sizeof(struct Node);p-data=num;p-n ext=l-n ext;l_n ext=p;scan f(%d,&n um);LinkListmerge_1(LinkList LA,LinkList LB)Node *p, *q;p=LA;

41、q=LB;while (p-n ext!=LA)p=p-n ext;while (q-n ext!=LB)q=q-n ext;q-n ext=LA;p-n ext=LB-n ext;free(LB);return(LA);void mai n()Lin kList la,lb,lc;Node *p;printf(建立循環(huán)鏈表 A,請(qǐng)輸入數(shù)據(jù)!:n); la=(Node*)malloc(sizeof(struct Node);create_cli nklist(la);p = la-n ext;while(p!=la)prin tf(%dn,p-data);p=p-n ext;printf(”建立循環(huán)鏈表 B,請(qǐng)輸入數(shù)據(jù)!:n); lb=(Node*)malloc(sizeof(struct Node); create_cli nklist(lb);p = lb-n ext;while(p!=lb)prin tf(%dn,p-data);p=p-n ext;lc=merge_1(la,lb);printf(”合并

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論