欧洲免费无码视频在线,亚洲日韩av中文字幕高清一区二区,亚洲人成人77777网站,韩国特黄毛片一级毛片免费,精品国产欧美,成人午夜精选视频在线观看免费,五月情天丁香宗合成人网

薈聚奇文、博采眾長、見賢思齊
當(dāng)前位置:公文素材庫 > 報(bào)告體會(huì) > 工作報(bào)告 > 數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì) 報(bào)告新的體會(huì)

數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì) 報(bào)告新的體會(huì)

網(wǎng)站:公文素材庫 | 時(shí)間:2019-05-29 10:36:25 | 移動(dòng)端:數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì) 報(bào)告新的體會(huì)

數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì) 報(bào)告新的體會(huì)

在本次的課程設(shè)計(jì)中,我遇到了好多問題,期間我苦苦思考了好長時(shí)間,去解決我遇到的每個(gè)問題,感覺問題就是一串一串的,解決一個(gè)下一個(gè)就會(huì)在那等著,就像登山一樣,越來越累但風(fēng)景卻越來越好。承認(rèn)這學(xué)期我的學(xué)習(xí)沒有用心,尤其是數(shù)據(jù)結(jié)構(gòu),根本是聽得一知半解,在做課程設(shè)計(jì)之前,我對(duì)雙向鏈表根本就是不知道更別提做設(shè)計(jì)了。我之前沒敢想,因?yàn)槲也粫?huì),因?yàn)槲也恢牢业娜松鷷?huì)走向哪里,沒有前進(jìn)的動(dòng)力和方向。真正做起來,才發(fā)現(xiàn)自己到大學(xué)了,學(xué)的竟然是那么少,連結(jié)構(gòu)體的操作都那么陌生,面對(duì)比這樣一個(gè)問題,開始的前四天我基本上都在看以前的C語言,數(shù)據(jù)結(jié)構(gòu)書籍。我不想再樣混沌下去,我需要的是走出自己,好好把握自己,我沒有放棄,沒有被困難嚇到,以前就是以前了,現(xiàn)在我要好好的,認(rèn)真的對(duì)待我的人生。

我從簡單的單向鏈表開始建立,再慢慢構(gòu)建起雙向鏈表,之后對(duì)其賦值,建立起一個(gè)能夠插入,刪除,操作的測試程序,發(fā)現(xiàn)只要認(rèn)真去學(xué),沒有什么不可克服的困難,就這樣一個(gè)一個(gè)問題的解決,慢慢我發(fā)現(xiàn)自己的程序慢慢壯大,一天一個(gè)進(jìn)步,不斷完善程序,根本沒想到我也能寫出一個(gè)將近700行的程序,心中又是激動(dòng)又是感覺自己必須要更加努力,努力讓自己更好。

出錯(cuò)的時(shí)候我也很煩,因?yàn)橹R(shí)少不知道錯(cuò)在哪里,但慢慢的我不斷看到自己程序從不能運(yùn)行到出現(xiàn)完美結(jié)果,記得好幾次都是想問題想得頭痛,但我還是堅(jiān)持了下來,看到了我的成果。

事情只有自己經(jīng)歷過才來的徹底,來的深刻,程序?qū)嵺`性很強(qiáng),我還是動(dòng)手少,思考少,通過本次課程設(shè)計(jì),我學(xué)到了很多很多,也感悟了很多,我會(huì)好好改變自己當(dāng)前的狀態(tài),以飽滿的熱情去迎接明天的挑戰(zhàn),努力為未來

通過這次數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的實(shí)驗(yàn),在解決問題的過程中,充分體會(huì)到了數(shù)據(jù)結(jié)構(gòu)這門課程對(duì)于軟件設(shè)計(jì)的重要性,也體會(huì)到了數(shù)據(jù)結(jié)構(gòu)+算法=程序這句話的真正含義,一個(gè)實(shí)際問題的解決第一步就是要依賴于良好的抽象思維的,將實(shí)際問題轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)結(jié)構(gòu),只有這一步做好了,才能采取相應(yīng)的算法和優(yōu)化方法解決問題和解決好問題。

擴(kuò)展閱讀:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì) 實(shí)驗(yàn)報(bào)告 心得體會(huì) 鏈表 C語言

數(shù)

據(jù)結(jié)

構(gòu)課程設(shè)計(jì)

設(shè)計(jì)題目:兩個(gè)鏈表的交叉合并

專業(yè)班級(jí):08軟件工程3班姓名:xxxxxx學(xué)號(hào):080107031123設(shè)計(jì)時(shí)間:201*/9/25指導(dǎo)教師:楊薇薇

一、設(shè)計(jì)題目

實(shí)現(xiàn)兩個(gè)鏈表的合并設(shè)計(jì)目的

1.掌握線性鏈表的建立。2.掌握線性鏈表的基本操作。設(shè)計(jì)內(nèi)容和要求

1.建立兩個(gè)鏈表A和B,鏈表元素個(gè)數(shù)分別為m和n個(gè)。2.假設(shè)元素分別為(x1,x2,xm),和(y1,y2,yn)。把它們合并成一個(gè)線形表C,使得:

當(dāng)m>=n時(shí),C=x1,y1,x2,y2,xn,yn,,xm當(dāng)n>m時(shí),C=y1,x1,y2,x2,ym,xm,,yn輸出線性表C。

3.用直接插入排序法對(duì)C進(jìn)行升序排序,生成鏈表D,并輸出鏈表D。

4.能刪除指定單鏈表中指定位子和指定值的元素。

二、運(yùn)行環(huán)境(軟、硬件環(huán)境)

軟件環(huán)境:VC++6.0編程軟件,運(yùn)行平臺(tái):Win32硬件:普通個(gè)人pc機(jī)、算法設(shè)計(jì)的思想

三、算法的流程圖

CreatA鏈表開始

CreatB鏈表Mergel(A,B)交叉合并成對(duì)C排序生成D提示輸入0或1cmd=0cmd=1錯(cuò)誤輸入

輸入將要操作的鏈表的名字輸入將要操作的鏈表的名字Cmderror正確錯(cuò)誤正確錯(cuò)誤刪除,打印Nameerror刪除,打印Nameerror打印“over”結(jié)束

四、算法設(shè)計(jì)分析

這個(gè)兩個(gè)鏈表的交叉合并算法主要運(yùn)用到的是鏈表的基本操作,定義節(jié)點(diǎn),將鏈表的創(chuàng)建、計(jì)算鏈表的長度、鏈表A,B的交叉組合、鏈表內(nèi)容升序排列、刪除鏈表指定位置元素、刪除指定的元素等算法寫成了獨(dú)立函數(shù),通過主函數(shù)調(diào)用。這樣就大大精簡了主函數(shù)的操作。但主函數(shù)中很大篇幅用到了if、else語句,用以指定鏈表指定結(jié)點(diǎn)和指定元素的刪除操作,這樣就使得本來很精簡變得繁瑣,降低了程序的質(zhì)量。所以其有優(yōu)點(diǎn)和缺點(diǎn),但需要不斷的改進(jìn),不斷優(yōu)化該程序。

五、源代碼程序源代碼:

#include#include

typedefstructnode//節(jié)點(diǎn)定義{

intdata;

structnode*next;}node,*linklist;

linklistcreat(linklisthead)//該函數(shù)用來創(chuàng)建鏈表{

node*r,*s;inta;

r=(linklist)malloc(sizeof(node));head=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ù)元素個(gè)數(shù){

inti=0;

linklistp=l->next;//p指向第一個(gè)結(jié)點(diǎn)while(p){

i++;

p=p->next;}

returni;}

linklistmergel(linklistA,linklistB)//用于實(shí)現(xiàn)鏈表A,B的交叉組合{

intm,n;

node*p,*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=min->data;min->data=temp;}}

returnL;}

linklistDelete(linklistl,intindex)//刪除鏈表指定位置元素{linklistp,t;

intcx=1;//用于計(jì)數(shù)p=l;

if(indexnext=p->next;}

else

printf("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;

}

else

printf("don"tfaindtheelement");

returnl;}

linklistdisplay(linklistl)//打印{linklistp;

printf("newlinklist:\\n");p=l->next;while(p){

printf("%d\\n",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");//創(chuàng)建B鏈表,并打印printf("pleaseinputadata:");B=creat(B);

C=mergel(A,B);//生成C鏈表,并打印printf("linklistC\\n");p=C->next;while(p){

printf("%d\\n",p->data);p=p->next;

}

D=C;//對(duì)C進(jìn)行排序生成Dsort(D);

printf("linklistD:\\n");q=D->next;while(q){

printf("%d\\n",q->data);q=q->next;}

printf("\\npleaseinput0or1\\n");

//用1和0判斷是按位置刪除還是直接刪除元素scanf("%d",&cmd);

if(cmd==0)//位置刪除{

printf("pleaseinputlinklistname\\n");fflush(stdin);

scanf("%c",&name);

printf("\\npleaseinputindex\\n");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);}

else

printf("nameError");}

elseif(cmd==1)//元素刪除{

fflush(stdin);//清除緩沖printf("pleaseinputlinklistname\\n");//fflush(stdin);scanf("%c",&name);

printf("\\npleaseinputdatas\\n");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(name=="D"){

Delete_element(D,datas);display(D);}

else

printf("name2error");}

else

printf("cmdError");

printf("\\nOver\\n");getchar();return0;}

六、運(yùn)行結(jié)果分析截圖:

結(jié)果分析:大體來說,該程序都實(shí)現(xiàn)了課程設(shè)計(jì)的算法要求及功能,但還是有很多問題,由于時(shí)間問題該算法做得比較粗糙,還不能很好的處理問題,例如,如果想在一次操作完成后還像再次操作,但此時(shí)已經(jīng)結(jié)束算法了,需

要重新運(yùn)行程序再次輸入操作才能達(dá)到要求,這樣很繁瑣。同時(shí)還存在一些其他的問題需要改進(jìn),程序就是在不斷改進(jìn)中不斷完善。

七、收獲及體會(huì)

這學(xué)期開始兩周時(shí)間是我們自己選題上機(jī)的時(shí)間,雖然上機(jī)時(shí)間只有短短兩個(gè)星期但從中確實(shí)學(xué)到了不少知識(shí)。數(shù)據(jù)結(jié)構(gòu)可以說是計(jì)算機(jī)里一門基礎(chǔ)課程,但我覺得我們一低定要把基礎(chǔ)學(xué)扎實(shí),然而這次短短的上機(jī)幫我又重新鞏固了C語言知識(shí),讓我的水平又一部的提高。數(shù)據(jù)結(jié)構(gòu)這是一門純屬于設(shè)計(jì)的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。它對(duì)我們來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。

我選的上機(jī)題目是交叉合并兩個(gè)鏈表,對(duì)這個(gè)題目,我覺得很基礎(chǔ)。剛開始調(diào)試代碼的時(shí)候有時(shí)就是一個(gè)很小的錯(cuò)誤,導(dǎo)致整個(gè)程序不能運(yùn)行,然而開始的我還沒從暑假的狀態(tài)轉(zhuǎn)到學(xué)習(xí)上,每當(dāng)程序錯(cuò)誤時(shí)我都非常焦躁,甚至想到了放棄,但我最終找到了狀態(tài),一步一步慢慢來,經(jīng)過無數(shù)次的檢查程序錯(cuò)誤的原因后慢慢懂得了耐心是一個(gè)人成功的必然具備的條件!同時(shí),通過此次課程設(shè)計(jì)使我了解到,硬件語言必不可缺少,要想成為一個(gè)有能力的人,必須懂得硬件基礎(chǔ)語言。在這次課程設(shè)計(jì)中,雖然不會(huì)成功的編寫一個(gè)完整的程序,但是在看程序的過程中,不斷的上網(wǎng)查資料以及翻閱相關(guān)書籍,通過不斷的模索,測試,發(fā)現(xiàn)問題,解

決問題和在老師的幫助下一步一步慢慢的正確運(yùn)行程序,終于完成了這次課程設(shè)計(jì),雖然這次課程設(shè)計(jì)結(jié)束了但是總覺得自已懂得的知識(shí)很是不足,學(xué)無止境,以后還會(huì)更加的努力深入的學(xué)習(xí)。

專業(yè)班級(jí):08軟件工程3班

學(xué)號(hào):080107031123

姓名:彭德偉

201*/9/25

友情提示:本文中關(guān)于《數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì) 報(bào)告新的體會(huì)》給出的范例僅供您參考拓展思維使用,數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì) 報(bào)告新的體會(huì):該篇文章建議您自主創(chuàng)作。

來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請(qǐng)聯(lián)系我們及時(shí)刪除。


數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì) 報(bào)告新的體會(huì)》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請(qǐng)保留原作者信息,謝謝!
鏈接地址:http://www.7334dd.com/gongwen/689777.html
最新文章