久久久久综合给合狠狠狠,人人干人人模,大陆一级黄色毛片免费在线观看,亚洲人人视频,欧美在线观看一区二区,国产成人啪精品午夜在线观看,午夜免费体验

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

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

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

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

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

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

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

事情只有自己經(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)化方法解決問題和解決好問題。

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

數(shù)

據(jù)結(jié)

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

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

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

一、設(shè)計題目

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

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

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

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

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

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

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

軟件環(huán)境:VC++6.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)容升序排列、刪除鏈表指定位置元素、刪除指定的元素等算法寫成了獨立函數(shù),通過主函數(shù)調(diào)用。這樣就大大精簡了主函數(shù)的操作。但主函數(shù)中很大篇幅用到了if、else語句,用以指定鏈表指定結(jié)點和指定元素的刪除操作,這樣就使得本來很精簡變得繁瑣,降低了程序的質(zhì)量。所以其有優(yōu)點和缺點,但需要不斷的改進(jìn),不斷優(yōu)化該程序。

五、源代碼程序源代碼:

#include#include

typedefstructnode//節(jié)點定義{

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ù)元素個數(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,*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;//用于計數(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;//對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;}

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

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

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

七、收獲及體會

這學(xué)期開始兩周時間是我們自己選題上機的時間,雖然上機時間只有短短兩個星期但從中確實學(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è)計中,雖然不會成功的編寫一個完整的程序,但是在看程序的過程中,不斷的上網(wǎng)查資料以及翻閱相關(guān)書籍,通過不斷的模索,測試,發(fā)現(xiàn)問題,解

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

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

學(xué)號:080107031123

姓名:彭德偉

201*/9/25

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

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


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