




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
鄭州輕工業(yè)學院
《數(shù)據(jù)結(jié)構(gòu)》課程實驗
實驗報告
題目:單鏈表表的基本操作及C語言實現(xiàn)
專業(yè):__________信息管理與信息系統(tǒng)
班級:_______________11-01________________________
姓名:________________高博文________________________
完畢日期:____________2023/5/23___________________
一、實驗內(nèi)容
用C語言實現(xiàn)單鏈表的建立插入刪除查找,合并等內(nèi)容
二、實驗?zāi)康?/p>
掌握鏈表的基本操作:插入、刪除、查找等運算,可以靈活應(yīng)用鏈表這種數(shù)據(jù)結(jié)構(gòu),進一步對
鏈表鏈式結(jié)構(gòu)的了解。
三.源程序代碼
#include<stdio.h>
#inc1ude<stdlib.h>
typedefintE1emtype:
typedefintStatus;
typedefstructnode〃定義存儲節(jié)點
(
intdata;//數(shù)據(jù)域
structnode*next;//結(jié)構(gòu)體指針
}*link1ist,node;//結(jié)構(gòu)體變量,結(jié)構(gòu)體名稱
linklistcreat(intn)//創(chuàng)建單鏈表
(
°linklisthead,r,p;〃定義頭指針r,p,指針
intx,i;
head=(node*)malloc(sizeof(node));〃生成頭結(jié)點
。r=head;//r指向頭結(jié)點
printf("輸入數(shù)字:\n");
°for(i=n;i>0;i--)//for循環(huán)用于生成第一個節(jié)點并讀入數(shù)據(jù)
°{
oscanf(n%dx);
。叩二(node*)malloc(sizeof(node));
p->data=x;〃讀入第一個節(jié)點的數(shù)據(jù)
阿->next=p;//把第一個節(jié)點連在頭結(jié)點的后面
。尸P;//循環(huán)以便于生成第二個節(jié)點
r->next=O;//生成鏈表后的斷開符
returnhead;//返回頭指針
)
voidoutput(linklisthead)//輸出鏈表
(
linklistp;
p=head->next;
o
(
printf(n%3dH,p->data);
ep=p—>next;
0)
while(p);
oprintf("\n");
)
Statusinsert(linklist&1,inti,Elemtypee)//插入操作
(
“ntj=0;
linklistp=l,s;
while(j<i-l&&p)
(
叩二p->next;
++j:
)
if(!p|Ij>i-1)
^return-1;
e1se
gs=(node*)ma11oc(sizeof(node));
s->data=e;
。s->next=p->next;
?p->next=s;
dreturn1;
°)
)
Statusde1ect(linklist&1,inti,Elemtype&e)〃刪除操作
(
Antj=0;
linklistp=1,q;
whi1e(j<i-1&&p->next)
(
叩二P->next;
++j;
)
if(!p->next|Ij>i-1)
^return-1;
else
(
oq=p->next;
叩->next=q->next;
e=q->data;
free(q);
?return1;
voidcombine(1ink1istla,link!istlb)//合并單鏈表
0node*pa,*pb,*pc;
olinklist1c;
。pa=la->next;
pb=lb—>next;
lc=pc=la;
while(pa&&pb){
oif(pa->data<=pb->data){
gpc—>next=pa;
gpc=pa;
^pa=pa->next;
)
e1se{pc->next=pb;pc=pb;pb=pb->next;}
)
叩c->next=pa?pa:pb;
free(lb);
)
StatusGetE1em(linklist1,inti,Elemtype&e)〃查找操作
(
。linklistp;
°intj;
p=l->next;
J=1;
。whi1e(p&&j<i)
p=p->next;
0++j;
)
。if(!PIIj>i)
oreturn-2;
e=p->data;
oreturne;
)
voidmain()
(
o1inklist1a,lb;
Antn;
inti,j;
E1emtypee;
printf("請輸入第一個鏈表:\nH);
printf("輸入鏈表元素的個數(shù):\n");
seanf(n%dn,&n);
01a=creat(n);
叩rintf("輸出鏈表:\n)
output(la);
叩rintf(”請輸入要查找元素的位置:\n");
scanf(u%dM,&i);
j=GetE1em(la,i,e);
中rintf("所要查找的元素是%d\n",j);
Printf("請輸入插入位置和元素:'n");
scanf("%d%d”,&i,&e);
insert(la,i,e);
Printf("插入后的鏈表:\n");
output(1a);
Printf("請輸入要刪除的位置:\n");
scanf("%d",&i);
delect(1a,i,e);
Printf("刪除的那個元素是:%d\n",e);
printf("輸出刪除后的順序表:\n");
outpul(la);
oprintf("請輸入第一個非遞減鏈表:\n");
。printf("輸入鏈表元素的個數(shù):\n");
seanf("%d",&n);
la=creat(n);
printf("輸出鏈表:\n");
?output(1a);
printf("請輸入第二個非遞減鏈表:\n");
?printf("輸入鏈表元素的個數(shù):\n");
scanf("%d",&n):
1b=creat(n);
oprintf("輸出鏈表:\n");
oulput(lb);
combine(1a,lb);
printf("輸出合并后的鏈表:\n");
°output(la);
)
運營結(jié)果如下:
,*C:\Users\moyuxuan\Desktop\Debug\thl.exe"
輸入鏈袤元去的個數(shù):
谿入數(shù)字:
1
3
5
輸出鏈表:
1357
請輸入要查找元素的位置:
2
2
立人后的鏈表:
1535?
請輸入要刪除的位置:
#犒翻嘉譚塞
卻整需臂表:
■入數(shù)字:
1
2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年云南省安全員C證考試(專職安全員)題庫及答案
- 上海抵押貸款合同范本
- 醫(yī)院被服洗滌合同范本
- 假山工程擔保合同范本
- 代書遺囑委托書
- 二年級口算題總匯100道
- 勞務(wù)合同范本 2014
- 單方投資合同范本
- 北京供暖委托運營合同范本
- 廠家食品合作合同范本
- 項目部崗位廉潔風險情景教育案例
- 小學英語-What a dream教學設(shè)計學情分析教材分析課后反思
- 消防栓定期檢查記錄表
- 員工面試登記表通用模板
- 單位(個人或集體)約談表
- 水質(zhì)檢測實驗室儀器配置
- 犯罪學全套教學課件
- 兒行千里母擔憂(京劇)課件
- 總匯-ssat2400必背類比關(guān)系總結(jié)
- 球墨鑄鐵管道施工的學習課件
- 學習2022《工業(yè)和信息化領(lǐng)域數(shù)據(jù)安全管理辦法(試行)》重點內(nèi)容PPT課件(帶內(nèi)容)
評論
0/150
提交評論