版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、精選word文檔 下載可編輯數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計 報告新的體會在本次的課程設(shè)計中,我遇到了好多問題,期間我苦苦思考了好長時間,去解決我遇到的每個問題,感覺問題就是一串一串的,解決一個下一個就會在那等著,就像登山一樣,越來越累但風(fēng)景卻越來越好。承認(rèn)這學(xué)期我的學(xué)習(xí)沒有用心,尤其是數(shù)據(jù)結(jié)構(gòu),根本是聽得一知半解,在做課程設(shè)計之前,我對雙向鏈表根本就是不知道更別提做設(shè)計了。我之前沒敢想,因為我不會,因為我不知道我的人生會走向哪里,沒有前進的動力和方向。真正做起來,才發(fā)現(xiàn)自己到大學(xué)了,學(xué)的竟然是那么少,連結(jié)構(gòu)體的操作都那么陌生,面對比這樣一個問題,開始的前四天我基本上都在看以前的c語言,數(shù)據(jù)結(jié)構(gòu)書籍。我不想
2、再樣混沌下去,我需要的是走出自己,好好把握自己,我沒有放棄,沒有被困難嚇到,以前就是以前了,現(xiàn)在我要好好的,認(rèn)真的對待我的人生。我從簡單的單向鏈表開始建立,再慢慢構(gòu)建起雙向鏈表,之后對其賦值,建立起一個能夠插入,刪除,操作的測試程序,發(fā)現(xiàn)只要認(rèn)真去學(xué),沒有什么不可克服的困難,就這樣一個一個問題的解決,慢慢我發(fā)現(xiàn)自己的程序慢慢壯大,一天一個進步,不斷完善程序,根本沒想到我也能寫出一個將近700行的程序,心中又是激動又是感覺自己必須要更加努力,努力讓自己更好。出錯的時候我也很煩,因為知識少不知道錯在哪里,但慢慢的我不斷看到自己程序從不能運行到出現(xiàn)完美結(jié)果,記得好幾次都是想問題想得頭痛,但我還是堅持
3、了下來,看到了我的成果。事情只有自己經(jīng)歷過才來的徹底,來的深刻,程序?qū)嵺`性很強,我還是動手少,思考少,通過本次課程設(shè)計,我學(xué)到了很多很多,也感悟了很多,我會好好改變自己當(dāng)前的狀態(tài),以飽滿的熱情去迎接明天的挑戰(zhàn),努力為未來通過這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計的實驗,在解決問題的過程中,充分體會到了數(shù)據(jù)結(jié)構(gòu)這門課程對于軟件設(shè)計的重要性,也體會到了數(shù)據(jù)結(jié)構(gòu)+算法=程序這句話的真正含義,一個實際問題的解決第一步就是要依賴于良好的抽象思維的,將實際問題轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)結(jié)構(gòu),只有這一步做好了,才能采取相應(yīng)的算法和優(yōu)化方法解決問題和解決好問題。擴展閱讀數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 實驗報告 心得體會 鏈表 c語言數(shù)據(jù)結(jié)構(gòu)課程設(shè)計設(shè)
4、計題目:兩個鏈表的交叉合并專業(yè)班級:08軟件工程3班姓名xxxxxx學(xué)號080107031123設(shè)計時間201*/9/25指導(dǎo)教師楊薇薇一、設(shè)計題目實現(xiàn)兩個鏈表的合并設(shè)計目的1掌握線性鏈表的建立。2掌握線性鏈表的基本操作。設(shè)計內(nèi)容和要求建立兩個鏈表a和b,鏈表元素個數(shù)分別為m和n個。假設(shè)元素分別為(x1,x2,xm),和(y1,y2,yn)。把它們合并成一個線形表c,使得當(dāng)m=n時,c=x1,y1,x2,y2,xn,yn,xm當(dāng)nm時,c=y1,x1,y2,x2,ym,xm,yn輸出線性表c。用直接插入排序法對c進行升序排序,生成鏈表d,并輸出鏈表d。能刪除指定單鏈表中指定位子和指定值的元素。
5、二、運行環(huán)境(軟、硬件環(huán)境)軟件環(huán)境vc+0編程軟件,運行平臺win32硬件普通個人pc機、算法設(shè)計的思想三、算法的流程圖creata鏈表開始creatb鏈表mergel(a,b)交叉合并成對c排序生成d提示輸入0或1cmd=0cmd=1錯誤輸入輸入將要操作的鏈表的名字輸入將要操作的鏈表的名字cmderror正確錯誤正確錯誤刪除,打印nameerror刪除,打印nameerror打印“over”結(jié)束四、算法設(shè)計分析這個兩個鏈表的交叉合并算法主要運用到的是鏈表的基本操作,定義節(jié)點,將鏈表的創(chuàng)建、計算鏈表的長度、鏈表a,b的交叉組合、鏈表內(nèi)容升序排列、刪除鏈表指定位置元素、刪除指定的元素等算法寫成
6、了獨立函數(shù),通過主函數(shù)調(diào)用。這樣就大大精簡了主函數(shù)的操作。但主函數(shù)中很大篇幅用到了if、else語句,用以指定鏈表指定結(jié)點和指定元素的刪除操作,這樣就使得本來很精簡變得繁瑣,降低了程序的質(zhì)量。所以其有優(yōu)點和缺點,但需要不斷的改進,不斷優(yōu)化該程序。五、源代碼程序源代碼:#include#includetypedefstructnode/節(jié)點定義intdata;structnode*next;node,*linklist;linklistcreat(linklisthead)/該函數(shù)用來創(chuàng)建鏈表node*r,*s;inta;r=(linklist)malloc(sizeof(node);head=
7、r;scanf(%d,&a);while(a!=0)s=(node*)malloc(sizeof(node);s-data=a;r-next=s;r=s;printf(pleaseinputadata:);scanf(%d,&a);r-next=null;returnhead;linklistlength(linklistl)/返回l中數(shù)據(jù)元素個數(shù)inti=0;linklistp=l-next;/p指向第一個結(jié)點while(p)i+;p=p-next;returni;linklistmergel(linklista,linklistb)/用于實現(xiàn)鏈表a,b的交叉組合intm,n;node*p,
8、*q,*s,*t;linklistc;p=a-next;q=b-next;m=length(a);n=length(b);c=a;if(mnext;q=a-next;c=b;while(p&q)s=p-next;p-next=q;if(s)t=q-next;q-next=s;p=s;q=t;returnc;linklistsort(linklistl)/linklistp,q,min;inttemp;p=l;while(p=p-next)q=min=p;while(q=q-next)if(q-datadata)min=q;鏈表內(nèi)容升序排列if(min!=p)temp=p-data;p-data
9、=min-data;min-data=temp;returnl;linklistdelete(linklistl,intindex)/刪除鏈表指定位置元素linklistp,t;intcx=1;/用于計數(shù)p=l;if(indexnext=p-next;elseprintf(inputindexterror);returnl;linklistdelete_element(linklistl,intdata)/刪除指定的元素linklistp;p=l;if(p-next)while(p-next-data!=data)p=p-next;p-next=p-next-next;elseprintf(d
10、ontfaindtheelement);returnl;linklistdisplay(linklistl)/打印linklistp;printf(newlinklist:n);p=l-next;while(p)printf(%dn,p-data);p=p-next;returnl;main()linklistp,q,a,b,c,d;intindexs;intdatas;charname;intcmd;printf(creatlinklista:n);/創(chuàng)建a鏈表,并打印printf(pleaseinputadata:);a=creat(a);printf(creatlinklistb:n);
11、/創(chuàng)建b鏈表,并打印printf(pleaseinputadata:);b=creat(b);c=mergel(a,b);/生成c鏈表,并打印printf(linklistcn);p=c-next;while(p)printf(%dn,p-data);p=p-next;d=c;/對c進行排序生成dsort(d);printf(linklistd:n);q=d-next;while(q)printf(%dn,q-data);q=q-next;printf(npleaseinput0or1n);/用1和0判斷是按位置刪除還是直接刪除元素scanf(%d,&cmd);if(cmd=0)/位置刪除pr
12、intf(pleaseinputlinklistnamen);fflush(stdin);scanf(%c,&name);printf(npleaseinputindexn);scanf(%d,&indexs);fflush(stdin);if(name=a)delete(a,indexs);display(a);elseif(name=b)delete(b,indexs);display(b);elseif(name=c)delete(c,indexs);display(c);elseif(name=d)delete(d,indexs);display(d);elseprintf(namee
13、rror);elseif(cmd=1)/元素刪除fflush(stdin);/清除緩沖printf(pleaseinputlinklistnamen);/fflush(stdin);scanf(%c,&name);printf(npleaseinputdatasn);scanf(%d,&datas);if(name=a)delete_element(a,datas);display(a);elseif(name=b)delete_element(b,datas);display(b);elseif(name=c)delete_element(c,datas);display(c);elseif
14、(name=d)delete_element(d,datas);display(d);elseprintf(name2error);elseprintf(cmderror);printf(novern);getchar();return0;六、運行結(jié)果分析截圖結(jié)果分析大體來說,該程序都實現(xiàn)了課程設(shè)計的算法要求及功能,但還是有很多問題,由于時間問題該算法做得比較粗糙,還不能很好的處理問題,例如,如果想在一次操作完成后還像再次操作,但此時已經(jīng)結(jié)束算法了,需要重新運行程序再次輸入操作才能達(dá)到要求,這樣很繁瑣。同時還存在一些其他的問題需要改進,程序就是在不斷改進中不斷完善。七、收獲及體會這學(xué)期開始兩周
15、時間是我們自己選題上機的時間,雖然上機時間只有短短兩個星期但從中確實學(xué)到了不少知識。數(shù)據(jù)結(jié)構(gòu)可以說是計算機里一門基礎(chǔ)課程,但我覺得我們一低定要把基礎(chǔ)學(xué)扎實,然而這次短短的上機幫我又重新鞏固了c語言知識,讓我的水平又一部的提高。數(shù)據(jù)結(jié)構(gòu)這是一門純屬于設(shè)計的科目,它需用把理論變?yōu)樯蠙C調(diào)試。它對我們來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。我選的上機題目是交叉合并兩個鏈表,對這個題目,我覺得很基礎(chǔ)。剛開始調(diào)試代碼的時候有時就是一個很小的錯誤,導(dǎo)致整個程序不能運行,然而開始的我還沒從暑假的狀態(tài)轉(zhuǎn)到學(xué)習(xí)上,每當(dāng)程序錯誤時我都非常焦躁,甚至想到了放棄,但我最終找到了狀態(tài),一步一步慢慢來,經(jīng)過無數(shù)次的檢查程序錯誤的原因后慢慢懂得了耐心是一個人成功的必然具備的條件!同時,通過此次課程設(shè)計使我了解到,硬件語言必不可缺少,要想成為一個有能力的人,必須懂得硬件基礎(chǔ)語言。在這次課程設(shè)計中,雖然不會成功的編寫一個完整的程序,
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市供水工程合同
- 油氣開采工程合同協(xié)議書
- 工廠化糞池新建工程合同
- 信息技術(shù)公司運營總監(jiān)聘任協(xié)議
- 造船廠腳手架鋼管租賃協(xié)議
- 油罐車應(yīng)急處置
- 智慧解決方案:智能教育培訓(xùn)
- 湖南省永州市(2024年-2025年小學(xué)五年級語文)統(tǒng)編版綜合練習(xí)(下學(xué)期)試卷及答案
- 2024年度特許經(jīng)營協(xié)議明確特許經(jīng)營范圍和權(quán)利義務(wù)
- 跟崗期間的自我總結(jié)(3篇)
- 鋰電池供應(yīng)商的合作協(xié)議書范文
- 杭州市2025屆高三教學(xué)質(zhì)量檢測(一模) 英語試題卷(含答案解析)
- 2024年商場員工管理制度(四篇)
- 培訓(xùn)教學(xué)課件模板
- 系統(tǒng)架構(gòu)師論文(經(jīng)典范文6篇)
- 農(nóng)業(yè)科技園區(qū)發(fā)展規(guī)劃
- 降低患者外出檢查漏檢率-品管圈課件
- 五年級上冊生命安全教育全冊教案
- JBT 1306-2024 電動單梁起重機(正式版)
- 2024年極兔速遞有限公司招聘筆試參考題庫附帶答案詳解
- TCALC 003-2023 手術(shù)室患者人文關(guān)懷管理規(guī)范
評論
0/150
提交評論