付費(fèi)下載
下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
.PAGE5/NUMPAGES5實(shí)驗(yàn)一鏈?zhǔn)浇Y(jié)構(gòu)綜合設(shè)計(jì)班級(jí):信科1403班姓名:段勝磊學(xué)號(hào):20140404305一、實(shí)驗(yàn)?zāi)繕?biāo)本實(shí)驗(yàn)通過(guò)定義單向鏈表的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)創(chuàng)建鏈表、插入結(jié)點(diǎn)、遍歷結(jié)點(diǎn)等基本算法,使學(xué)生掌握線性鏈表的基本特征和算法,并能熟練編寫(xiě)C程序,培養(yǎng)理論聯(lián)系實(shí)際和自主學(xué)習(xí)的能力,提高程序設(shè)計(jì)水平。二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)職工信息查詢系統(tǒng)。每個(gè)職工的信息包括,職工號(hào),姓名,所屬部門(mén)號(hào),月薪。建立一個(gè)職工信息的單鏈表L。在單鏈表L中查找職工號(hào)為t的職工信息,并輸出。在單鏈表L中刪除職工號(hào)為t的職工信息。輸出單鏈表L中所有的節(jié)點(diǎn)三、數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)由于職工信息在邏輯結(jié)構(gòu)上是線性的,將其建立為鏈?zhǔn)浇Y(jié)構(gòu)既使得職工信息的增加可以是動(dòng)態(tài)的,也使得其刪除過(guò)程容易實(shí)現(xiàn)。具體節(jié)點(diǎn)類(lèi)型定義如下:Typedefstructelem{intno;/職工號(hào)Charname[20];/職工姓名Intdepno;/所屬部門(mén)號(hào)Intsalary;/月薪}elemtypeTypedefstructnode{elemtypedata;/職工信息域structnode*next;/鏈域}Lnode節(jié)點(diǎn)的示例圖:Data域Next域職工號(hào)職工姓名所屬部門(mén)號(hào)月薪>四、各功能函數(shù)的設(shè)計(jì)〔1建立鏈表函數(shù)Lnode*new<void>功能:該函數(shù)實(shí)現(xiàn)建立一個(gè)含有頭節(jié)點(diǎn)的鏈表。具體過(guò)程:1建立一個(gè)含有頭節(jié)點(diǎn)的空鏈表L。2輸入一個(gè)新的職工信息。如為非法信息則建立鏈表過(guò)程結(jié)束執(zhí)行6,否則繼續(xù)3。3建立一個(gè)新節(jié)點(diǎn)p,并將輸入的信息記錄在節(jié)點(diǎn)p的data域。4將節(jié)點(diǎn)p跟在鏈表L的頭節(jié)點(diǎn)之后。5繼續(xù)26返回鏈表的頭指針?!?查找職工號(hào)為t的職工信息函數(shù)Lnode*find<Lnode*L,intt>功能:該函數(shù)實(shí)現(xiàn)在含有頭節(jié)點(diǎn)的鏈表L上查找職工號(hào)為t的職工信息,找到則返回該節(jié)點(diǎn)的指針,否則返回NULL。具體過(guò)程:1>建立一個(gè)新節(jié)點(diǎn),并且定義一個(gè)t作為要查找的職工號(hào)。然后把頭結(jié)點(diǎn)的next域賦值給p節(jié)點(diǎn)。2>接著判斷p節(jié)點(diǎn)指向的鏈表是否為NULL。3>如果p節(jié)點(diǎn)指向的鏈表不為空,則判斷節(jié)點(diǎn)p中的職工號(hào)是否為t職工號(hào),如果不是則p節(jié)點(diǎn)指向它的下一個(gè)域。4>返回節(jié)點(diǎn)p?!?刪除職工號(hào)為t的職工信息函數(shù)intdel<Lnode*L,intt>功能:該函數(shù)實(shí)現(xiàn)在一個(gè)含有頭節(jié)點(diǎn)的鏈表L上刪除職工號(hào)為t的職工信息,刪除成功則返回1,否則返回0。具體過(guò)程:1>建立兩個(gè)新節(jié)點(diǎn)p和q,然后把該鏈表的頭結(jié)點(diǎn)賦值給節(jié)點(diǎn)p。2>判斷節(jié)點(diǎn)p的下一個(gè)域是否為空。3>如果節(jié)點(diǎn)p的下一個(gè)域?yàn)榭?則返回0;否則,把節(jié)點(diǎn)p的下一個(gè)域賦值給節(jié)點(diǎn)q,接著節(jié)點(diǎn)q的下一個(gè)域賦值給節(jié)點(diǎn)p的下一個(gè)域。4>返回1〔4輸出職工信息函數(shù)voidout<Lnode*p>功能:該函數(shù)實(shí)現(xiàn)輸出p所指節(jié)點(diǎn)的職工信息。具體過(guò)程:1>建立一個(gè)新的節(jié)點(diǎn)p。2>判斷p是否為空。3>如果p不為空,則分別輸出職工信息。4>然后使節(jié)點(diǎn)p指向節(jié)點(diǎn)P的下一個(gè)域。五、實(shí)驗(yàn)結(jié)果及分析實(shí)驗(yàn)結(jié)果:結(jié)果分析:這是開(kāi)始分別錄入了三個(gè)職工的信息;結(jié)果分析:這是重新把剛才錄入的所有職工信息的都輸出來(lái);結(jié)果分析:〔1首先我們查找了職工號(hào)為222的職工信息;〔2然后接著刪除職工號(hào)為222的職工信息;〔3最后輸出了職工信息。六、源代碼#include<stdlib.h>#include<stdio.h>typedefstructelem{ intno;//職工號(hào) charname[20];//職工姓名 intdepno;//所屬部門(mén)號(hào) intsalary;//月薪}elemtype;typedefstructnode{ elemtypedata;//職工信息域 structnode*next;//鏈域}Lnode;Lnode*new<>{ Lnode*head,*p1; intn=3,k; head=<Lnode*>malloc<sizeof<Lnode>>; head->next=NULL; for<k=1;k<=n;k++> { p1=<Lnode*>malloc<sizeof<Lnode>>; printf<"請(qǐng)輸入一個(gè)職工號(hào)〔三位數(shù):\n">; scanf<"%d",&p1->data.no>; printf<"請(qǐng)輸入一個(gè)職工的姓名:\n">; scanf<"%s",p1->>; printf<"請(qǐng)輸入該職工所屬部門(mén)號(hào)〔兩位數(shù):\n">; scanf<"%d",&p1->data.depno>; printf<"請(qǐng)輸入該職工的月薪:\n">; scanf<"%d",&p1->data.salary>; p1->next=head->next; head->next=p1; } return<head>;}voidout<Lnode*head>{ Lnode*p; p=head->next; while<p!=NULL> { printf<"該職工的職工號(hào):%d\n",p->data.no>; printf<"該職工的姓名:%s\n",p->>; printf<"該職工的所屬部門(mén)號(hào):%d\n",p->data.depno>; printf<"該職工的月薪:%d\n",p->data.salary>; p=p->next; }}Lnode*find<Lnode*head,intt>{ Lnode*p; p=head->next; while<p!=NULL> { if<p->data.no==t> break; else p=p->next; } return<p>;}intdel<Lnode*head,intt>{ Lnode*p,*q; p=head; while<p->next!=NULL> { if<p->next->data.no==t> break; else p=p->next; } if<p->next==NULL> return<0>; else { q=p->next; p->next=q->next; free<q>; return<1>; }}voidmain<>{ Lnode*L,*q; intx; intk; L=new<>; out<L>; printf<"請(qǐng)輸入你要查找的職工號(hào)〔三位數(shù):\n">; scanf<"%d",&k>; q=find<L,k>; if<q==NULL> printf<"沒(méi)有找到該職工的信息">; else printf<"找到該職工的信息為:\n">; printf<"該職工的職工號(hào):%d\n",q->data.no>; printf<"該職工的姓名:%s\n",q-
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 35618-2025社會(huì)保險(xiǎn)基金預(yù)算編制基本業(yè)務(wù)規(guī)范
- 養(yǎng)老院?jiǎn)T工培訓(xùn)與考核制度
- 企業(yè)員工培訓(xùn)與技能發(fā)展路徑制度
- 交通管制與疏導(dǎo)方案制度
- 2026年會(huì)計(jì)師繼續(xù)教育練習(xí)題企業(yè)會(huì)計(jì)準(zhǔn)則
- 2026年經(jīng)濟(jì)學(xué)理論與經(jīng)濟(jì)現(xiàn)象分析試題
- 2026年社會(huì)調(diào)查與研究方法理論考試題庫(kù)
- 2026年醫(yī)師資格考試疾病診斷與治療方案分析
- 跨境數(shù)字貨幣支付結(jié)算合規(guī)審查服務(wù)合同
- 2026年新版御夫座協(xié)議
- 新疆環(huán)保行業(yè)前景分析報(bào)告
- 2025~2026學(xué)年福建省泉州五中七年級(jí)上學(xué)期期中測(cè)試英語(yǔ)試卷
- 聯(lián)合辦公合同范本
- 2025年生物多樣性保護(hù)與生態(tài)修復(fù)項(xiàng)目可行性研究報(bào)告
- 2025年黑龍江省檢察院公益訴訟業(yè)務(wù)競(jìng)賽測(cè)試題及答案解析
- 一氧化碳中毒救治課件
- 廣東事業(yè)單位歷年考試真題及答案
- 《會(huì)計(jì)信息化工作規(guī)范》解讀(楊楊)
- 高海拔地區(qū)GNSS大壩監(jiān)測(cè)技術(shù)研究
- 實(shí)施指南(2025)《DL-T 1630-2016氣體絕緣金屬封閉開(kāi)關(guān)設(shè)備局部放電特高頻檢測(cè)技術(shù)規(guī)范》
- 慢性胃炎的護(hù)理業(yè)務(wù)查房
評(píng)論
0/150
提交評(píng)論