




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質(zhì)文檔-傾情為你奉上專心-專注-專業(yè)數(shù)據(jù)結(jié)構(gòu)與算法綜合實(shí)驗(yàn)報(bào)告系 別: 專 業(yè): 學(xué)生姓名: 指導(dǎo)教師: 2011年 11月 25日實(shí)驗(yàn)?zāi)康恼莆站€性表的建立、插入、刪除算法;掌握查找算法;掌握排序算法;實(shí)驗(yàn)要求使用C語言(環(huán)境任意)開發(fā)程序,能夠?qū)τ脩糨斎氲娜我庖唤M數(shù)據(jù),建立一個(gè)線性表,可以輸出此線性表。并且能夠?qū)Υ司€性表進(jìn)行插入、刪除、查找、排序等操作。程序流程建表如下:定義一個(gè)整型的數(shù)據(jù)類型data和next指針:定義頭指針和當(dāng)前結(jié)點(diǎn)指針,申請連續(xù)空間將單個(gè)字節(jié)大小復(fù)制給頭指針,把頭指針賦值給當(dāng)前節(jié)點(diǎn)
2、指針:若輸入的數(shù)是0,則若輸入不為0,把輸入的數(shù)賦值給已申請的新結(jié)點(diǎn),把新結(jié)點(diǎn)賦給當(dāng)前節(jié)點(diǎn)的next域,再把新結(jié)點(diǎn)賦值給當(dāng)前結(jié)點(diǎn),以此方法重復(fù)執(zhí)行得到如下鏈表:輸出函數(shù):把頭指針賦值給當(dāng)前結(jié)點(diǎn)指針,當(dāng)當(dāng)前節(jié)點(diǎn)的next域不為空時(shí)輸出當(dāng)前節(jié)點(diǎn)所指向的數(shù)據(jù),把當(dāng)前結(jié)點(diǎn)的next域賦值給當(dāng)前節(jié)點(diǎn),否則輸出鏈表為空對此線性表進(jìn)行插入、刪除、查詢、排序操作把已申請的結(jié)點(diǎn)數(shù)據(jù)域指向所輸入的數(shù)再把插入w結(jié)點(diǎn)賦值頭結(jié)點(diǎn),是插入的位置,如果w=0則插入結(jié)點(diǎn)的next域賦值給頭結(jié)點(diǎn)否則如果w表長,則輸出超出范圍代碼及運(yùn)行結(jié)果(主要語句要求有注釋)#includestdafx.h#include#include#d
3、efine NULL 0typedef struct linknode int data; struct linknode *next;node;node *head;node *creat() node *currnode,*newnode; int x; head=(node*)malloc(sizeof(node); currnode=head; do scanf(%d,&x);newnode=(node*)malloc(sizeof(node);newnode-data=x;currnode-next=newnode;currnode=newnode; while(x!=NULL);
4、head=head-next; currnode-next=NULL; return head;int length() node *currnode; int i=0; currnode=head; while(currnode-data!=NULL) currnode=currnode-next; i+; ; return i;void print() node *currnode; currnode=head; printf(鏈表如下.linklist); while(currnode-data!=NULL) printf(%d-,currnode-data); currnode=cur
5、rnode-next; ; printf(NULLn); printf(鏈表長度為.linklist length%dn,length();void delete1() int x; node *delnode,*currnode; printf(輸入要?jiǎng)h除的數(shù)據(jù).input delete data:); scanf(%d,&x); if(head-data=NULL) printf(此鏈表為空無法刪除.this linklist empty!n); if(head-data=x) delnode=head; head=head-next; free(delnode); if(head=NUL
6、L) printf(此鏈表為空.this linklist enpty!); else currnode=head; delnode=currnode-next; while(delnode-data!=x&delnode!=NULL) currnode=currnode-next;delnode=currnode-next; ; if(delnode=NULL)printf(無此數(shù)據(jù).no this data!n); else currnode-next=delnode-next; free(delnode); ; ;void find() node *currnode; int count
7、=1,x; currnode=head; printf(輸入要查找的數(shù)據(jù).input search data:); scanf(%d,&x); while(currnode-data!=NULL&currnode-data!=x) currnode=currnode-next; count+; ; if(currnode-data!=NULL) printf(n%d為第.is no.,currnode-data); printf(%d個(gè)數(shù)據(jù).data。n,count); else printf(n無此數(shù)據(jù).not this data!n);void insert() int x,w,i; no
8、de *insertnode, *afternode,*currnode; printf(輸入要插入的數(shù)據(jù)Y.input inserte data:); scanf(%d,&x); printf(插入n結(jié)點(diǎn)后.insert after no. data n=:(0,1,); scanf(%d,&w); insertnode=(node*)malloc(sizeof(node); insertnode-data=x; if(w=0) insertnode-next=head; head=insertnode; else if(wlength() printf(超出范圍.overflow!n);
9、else currnode= head;afternode=currnode-next; for(i=1;inext; currnode=currnode-next;currnode-next=insertnode;insertnode-next=afternode; ;void sort(node * *head)node *p,*q,*r,*s,*h1;h1=p=(node *)malloc(sizeof(node);p-next=*head;while(p-next-data!=NULL) q=p-next; r=p;while(q-next-data!=NULL)if (q-next-
10、datanext-data)r=q;q=q-next;if(r!=p)s=r-next;r-next=s-next;s-next=p-next;p-next=s;p=p-next;*head=h1-next;free(h1);void operation() printf(nn刪除數(shù)據(jù)輸入.delete1: 1n); printf(n查找數(shù)據(jù)輸入.search: 2n); printf(n插入數(shù)據(jù)輸入.insert: 3n); printf(n排序數(shù)據(jù)輸入.sort: 4n); printf(n結(jié)束操作.end: 5n); printf(n?:);void main() int choic;
11、printf(n輸入數(shù)據(jù)以0結(jié)束.input data 0 end:n); head=creat(); print(); operation(); do scanf(%d,&choic); switch(choic) case 1: delete1(); print(); operation(); break; case 2: find(); operation(); break; case 3:insert(); print(); operation(); break; case 4:sort(&head); print(); operation(); break; default:prin
12、tf(操作結(jié)束.operate end!); break; ; while(choic!=5);個(gè)人總結(jié)(要求1000字以上)數(shù)據(jù)結(jié)構(gòu)學(xué)科的章節(jié)劃分基本上為:概論,線性表,棧和隊(duì)列,串,多維數(shù)組和廣義表,樹和二叉樹,圖,查找,內(nèi)排,外排,文件,動(dòng)態(tài)存儲分配。對于絕大多數(shù)的學(xué)校而言,“外排,文件,動(dòng)態(tài)存儲分配”三章基本上是不考的,在大多數(shù)高校的計(jì)算機(jī)本科教學(xué)過程中,這三章也是基本上不作講授的。所以,大家在這三章上可以不必花費(fèi)過多的精力,只要知道基本的概念即可。但是,對于報(bào)考名校特別是該校又有在試卷中對這三章進(jìn)行過考核的歷史,那么這部分朋友就要留意這三章了。按照以上我們給出的章節(jié)以及對后三章的介紹
13、,數(shù)據(jù)結(jié)構(gòu)的章節(jié)比重大致為:概論:內(nèi)容很少,概念簡單,分?jǐn)?shù)大多只有幾分,有的學(xué)校甚至不考。線性表:基礎(chǔ)章節(jié),必考內(nèi)容之一??碱}多數(shù)為基本概念題,名??碱}中,鮮有大型算法設(shè)計(jì)題。如果有,也是與其它章節(jié)內(nèi)容相結(jié)合。棧和隊(duì)列:基礎(chǔ)章節(jié),容易出基本概念題,必考內(nèi)容之一。而棧常與其它章節(jié)配合考查,也常與遞歸等概念相聯(lián)系進(jìn)行考查。串 :基礎(chǔ)章節(jié),概念較為簡單。專門針對于此章的大型算法設(shè)計(jì)題很少,較常見的是根據(jù)KMP進(jìn)行算法分析。多維數(shù)組及廣義表 :基礎(chǔ)章節(jié),基于數(shù)組的算法題也是常見的,分?jǐn)?shù)比例波動(dòng)較大,是出題的“可選單元”或“侯補(bǔ)單元”。一般如果要出題,多數(shù)不會(huì)作為大題出。數(shù)組常與“查找,排序”等章節(jié)結(jié)合來作為大題考查。樹和二叉樹 :重點(diǎn)難點(diǎn)章節(jié),各校必考章節(jié)。各校在此章出題的不同之處在于,是否在本章中出一到兩道大的算法設(shè)計(jì)題。通過對多所學(xué)校的試卷分析,絕大多數(shù)學(xué)校在本章都曾有過出大型算法設(shè)計(jì)題的歷史。圖 :重點(diǎn)難點(diǎn)章節(jié),名校尤愛考。如果作為重點(diǎn)來考,則多出現(xiàn)于分析與設(shè)計(jì)題型當(dāng)中,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小區(qū)盜竊防范方案(3篇)
- 醫(yī)療耗材購置管理制度
- 化學(xué)物品卸貨管理制度
- 消防泳池改造方案(3篇)
- 夜間火災(zāi)處置方案(3篇)
- 寺廟招標(biāo)重建方案(3篇)
- 小型工廠管理方案(3篇)
- 定制銷售體系方案(3篇)
- 安裝路燈預(yù)算方案(3篇)
- 保安車輛配備方案(3篇)
- 新車出廠質(zhì)檢報(bào)告
- 成人預(yù)防接種
- 2024年4月自考05844國際商務(wù)英語試題及答案
- 工程機(jī)械租賃服務(wù)方案及保障措施
- 第20課+社會(huì)主義國家的發(fā)展與變化高一下學(xué)期統(tǒng)編版(2019)必修中外歷史綱要下
- 生物化學(xué)(天津中醫(yī)藥大學(xué))智慧樹知到期末考試答案章節(jié)答案2024年天津中醫(yī)藥大學(xué)
- 人教版六年級語文下冊期末摸底考試及答案
- 中國大學(xué)mooc《分子生物學(xué)實(shí)驗(yàn)(北京師范大學(xué)) 》章節(jié)測試答案
- 110KV變電站繼電保護(hù)設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 化驗(yàn)室6S管理培訓(xùn)
- 《烽火歲月中的版畫》參考課件
評論
0/150
提交評論