大學(xué)生數(shù)據(jù)結(jié)構(gòu)心得體會
在不斷發(fā)展的社會中,當(dāng)我們對人生或者事物有了新的感悟時,寫心得體會是不錯的選擇,這樣既可以鞏固所學(xué),還方便今后回顧。下面是小編整理的大學(xué)生數(shù)據(jù)結(jié)構(gòu)心得體會,僅供參考,希望對你有所幫助。
大學(xué)生數(shù)據(jù)結(jié)構(gòu)心得體會精選篇1
數(shù)據(jù)庫課程設(shè)計大賽的塵囂漸漸遠(yuǎn)去,懷著對這次大賽的些許不舍,懷著對當(dāng)初課程設(shè)計開始時候的豪情萬丈的決心的留戀,懷著通過這次課程設(shè)計積累的信心與斗志,我開始寫這篇文章,為自己的足跡留下哪怕是微不足道但是對自己彌足珍貴的痕跡并期望與大家共勉。
首先,讓我的記憶追溯到大二暑假,在老大的指引下(老大勸我學(xué)asp。net),我接觸到Microsoft公司的。NET產(chǎn)品。那個時候我已經(jīng)學(xué)過vc和asp,因為windows程序設(shè)計實驗的課的關(guān)系,接觸過vb,但是沒有專門去學(xué)他,因為習(xí)慣了c++里面的class,int,覺得vb的sub,var看著就不是很順心。
我是一個好奇心很強(qiáng)的人,突然看到了一個號稱“。net是用于創(chuàng)建下一代應(yīng)用程序的理想而又現(xiàn)實的開發(fā)工具”,而且主推c#語言,由于對c語言的一貫好感,我?guī)缀跏橇⒖虒λa(chǎn)生了興趣。我就開始了對c#的學(xué)習(xí),任何語言都不是孤立存在的,所以數(shù)據(jù)交互是很重要的,暑假的時候我把我們這學(xué)期的課本數(shù)據(jù)庫系統(tǒng)概論
大學(xué)生數(shù)據(jù)結(jié)構(gòu)心得體會精選篇2
這學(xué)期開始兩周時間是我們自己選題上機(jī)的時間,這學(xué)期開始兩周時間是我們自己選題上機(jī)的時間,雖然上機(jī)時間只有短短兩個星期但從中確實學(xué)到了不少知識。上機(jī)時間只有短短兩個星期但從中確實學(xué)到了不少知識。數(shù)據(jù)結(jié)構(gòu)可以說是計算機(jī)里一門基礎(chǔ)課程,據(jù)結(jié)構(gòu)可以說是計算機(jī)里一門基礎(chǔ)課程,但我覺得我們一低計算機(jī)里一門基礎(chǔ)課程定要把基礎(chǔ)學(xué)扎實,定要把基礎(chǔ)學(xué)扎實,然而這次短短的上機(jī)幫我又重新鞏固了C語言知識,讓我的水平又一部的提高。數(shù)據(jù)結(jié)構(gòu)這是一門語言知識讓我的水平又一部的提高。
數(shù)據(jù)結(jié)構(gòu)這是一門知識,純屬于設(shè)計的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。純屬于設(shè)計的科目,它需用把理論變?yōu)樯蠙C(jī)調(diào)試。它對我們來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。來說具有一定的難度。它是其它編程語言的一門基本學(xué)科。我選的上機(jī)題目是交叉合并兩個鏈表,對這個題目,我選的.上機(jī)題目是交叉合并兩個鏈表,對這個題目,我覺得很基礎(chǔ)。剛開始調(diào)試代碼的時候有時就是一個很小的錯覺得很基礎(chǔ)。剛開始調(diào)試代碼的時候有時就是一個很小的錯調(diào)試代碼的時候誤,導(dǎo)致整個程序不能運(yùn)行,然而開始的我還沒從暑假的狀導(dǎo)致整個程序不能運(yùn)行,態(tài)轉(zhuǎn)到學(xué)習(xí)上,每當(dāng)程序錯誤時我都非常焦躁,態(tài)轉(zhuǎn)到學(xué)習(xí)上,每當(dāng)程序錯誤時我都非常焦躁,甚至想到了放棄,但我最終找到了狀態(tài),一步一步慢慢來,放棄,但我最終找到了狀態(tài),一步一步慢慢來,經(jīng)過無數(shù)次的檢查程序錯誤的原因后慢慢懂得了耐心是一個人成功的必然具備的條件!同時,通過此次課程設(shè)計使我了解到,必然具備的條件!同時,通過此次課程設(shè)計使我了解到,硬件語言必不可缺少,要想成為一個有能力的人,必須懂得件語言必不可缺少,要想成為一個有能力的人,硬件基礎(chǔ)語言。在這次課程設(shè)計中,硬件基礎(chǔ)語言。在這次課程設(shè)計中,雖然不會成功的編寫一個完整的程序,但是在看程序的過程中,個完整的程序,但是在看程序的過程中,不斷的上網(wǎng)查資料以及翻閱相關(guān)書籍,通過不斷的模索,測試,發(fā)現(xiàn)問題,以及翻閱相關(guān)書籍,通過不斷的模索,測試,發(fā)現(xiàn)問題,解決問題和在老師的幫助下一步一步慢慢的正確運(yùn)行程序,決問題和在老師的幫助下一步一步慢慢的正確運(yùn)行程序,終于完成了這次課程設(shè)計,于完成了這次課程設(shè)計。
大學(xué)生數(shù)據(jù)結(jié)構(gòu)心得體會精選篇3
本次課程設(shè)計所用到的知識完全是上學(xué)期的知識,通過這次課程設(shè)計,我認(rèn)識到了我對數(shù)據(jù)結(jié)構(gòu)這門課的掌握程度。
首先我這個課程設(shè)計是關(guān)于二叉樹的,由于是剛接觸二叉樹,所以我掌握的長度并不深。在編程之前我把有關(guān)于二叉樹的知識有溫習(xí)了一遍,還好并沒有忘掉。二叉樹這章節(jié)難度中上等,而且內(nèi)容廣泛,所以我只掌握了百分之六七十。
然后,在編程中我認(rèn)識到了自己動手能力的不足,雖然相比較大二而言進(jìn)步很大,但是我還是不滿意,有的在編程中必須看書才能寫出來,有的靠百度,很少是自己寫的。還好,我自己組裝程序的能力還行,要不這東拼西湊的程序根本組裝不了。在編程中我還認(rèn)識到了,編程不能停下,如果編程的時間少了,知識忘的會很快,而且動手也會很慢。同時,同學(xué)之間的合作也很重要,每個人掌握的知識都不一樣,而且掌握程度也不一樣,你不會的別的同學(xué)會,所以在大家的共同努力下,編程會變得很容易。在這次編程中,我了解到了自己某些方面的不足,比如說鏈表的知識,雖然我能做一些有關(guān)于鏈表的編程,但是很慢,沒有別人編程的快,另外,二叉樹和圖的知識最不好掌握,這方面的知識廣泛而復(fù)雜。以前,沒動手編程的時候覺得這些知識很容易,現(xiàn)在編程了才發(fā)現(xiàn)自己錯了,大錯特錯了,我們這個專業(yè)最重視的就是動手編程能力,如果我們紙上寫作能力很強(qiáng)而動手編程能力很差,那我們就白上這個專業(yè)了。計算機(jī)這個專業(yè)就是鍛煉動手編程能力的,一個人的理論知識再好,沒有動手編程能力,那他只是一個計算機(jī)專業(yè)的“入門者”。在編程中我們能找到滿足,如果我們自己編程了一個程序,我們會感到自豪,而且充實,因為如果我們專研一個難得程序,我們會達(dá)到忘我的境界,自己完全沉浸在編程的那種樂趣之中,完全會廢寢忘食。編程雖然會乏味很無聊,但是只要我們沉浸其中,你就會發(fā)現(xiàn)里面的樂趣,遇到難得,你會勇往直前,不寫出來永不罷休;遇到容易的,你會找到樂趣。編程是很乏味,但是那是因為你沒找到編程重的樂趣,你只看到了他的不好,而沒有看到他的好。其實,只要你找到編程中得樂趣,你就會完全喜歡上他,不編程還好,一編程你就會變成一個兩耳不聞窗外事的“植物人”。可以說只要你涉及到了計算機(jī),你就的會編程,而且還要喜歡上他,永遠(yuǎn)和他打交道,我相信在某一天,我們一定會把他當(dāng)作我們不可或缺的好朋友。
最后我要談的是長時間編程的好處,俗話說“熟能生巧”,確實是這樣。如果我們長時間不編程,在一接觸他,我們會感到很陌生。有規(guī)律的編程會提高我們的動手能力,我們的思維,也會讓我們變得很細(xì)心。在一個幾千行的程序中,我們都能找到錯誤,那我們還會怕其他的錯誤嗎?可以說編程是我們在我們這一行業(yè)的一把利劍,如果我們能很好的利用它,我們就會成為這個行業(yè)的真正成功者。也許你會說就算變成好了也不一定成功,是的,但是你不會編程就一定不會成功。如果,我們想成為這個專業(yè)的成功者,我們就得愛上編程,不管他是怎么得乏味,怎么得無聊,我們都不能丟掉他。
總之,動手編程就是鍛煉我們的動手能力,當(dāng)然這個動手能力并不是科研上的動手能力,而是我們的動手編程能力,記住,只要你真正的喜歡上他,你就會發(fā)現(xiàn)其中的樂趣,我相信,只要你堅持下去,你一定會喜歡上他,把編程當(dāng)作自己日常生活中一件必須做的事情。
大學(xué)生數(shù)據(jù)結(jié)構(gòu)心得體會精選篇4
完成了這次的二元多項式加減運(yùn)算問題的課程設(shè)計后,我的心得體會很多,細(xì)細(xì)梳理一下,有以下幾點:
1、程序的編寫中的語法錯誤及修改
因為我在解決二元多項式問題中,使用了鏈表的方式建立的二元多項式,所以程序的空間是動態(tài)的生成的,而且鏈表可以靈活地添加或刪除結(jié)點,所以使得程序得到簡化。但是出現(xiàn)的語法問題主要在于子函數(shù)和變量的定義,降序排序,關(guān)鍵字和函數(shù)名稱的書寫,以及一些庫函數(shù)的規(guī)范使用,這些問題均可以根據(jù)編譯器的警告提示,對應(yīng)的將其解決。
2、程序的設(shè)計中的邏輯問題及其調(diào)整
我在設(shè)計程序的過程中遇到許多問題,首先在選擇數(shù)據(jù)結(jié)構(gòu)的時候選擇了鏈表,但是鏈表的排序比較困難,特別是在多關(guān)鍵字的情況下,在一種關(guān)鍵字確定了順序以后,在第一關(guān)鍵字相同的時候,按某種順序?qū)Φ诙P(guān)鍵字進(jìn)行排序。在此程序中共涉及到3個量數(shù),即:系數(shù),x的指數(shù)和y的指數(shù),而關(guān)鍵字排是按x的指數(shù)和y的指數(shù)來看,由于要求是降冪排序且含有2個關(guān)鍵字,所以我先選擇x的指數(shù)作為第一關(guān)鍵字,先按x的降序來排序,當(dāng)x的指數(shù)相同時,再以y為關(guān)鍵字,按照y的指數(shù)大小來進(jìn)行降序排列。
另外,我在加法函數(shù)的編寫過程中也遇到了大量的問題,由于要同時比較多個關(guān)鍵字,而且設(shè)計中涉及了數(shù)組和鏈表的綜合運(yùn)用,導(dǎo)致反復(fù)修改了很長的時間才完成了一個加法的設(shè)計。但是,現(xiàn)在仍然有一個問題存在:若以0為系數(shù)的項是首項則顯示含有此項,但是運(yùn)算后則自動消除此項,這樣是正確的。但是當(dāng)其不是首項的時候,加法函數(shù)在顯示的時候有0為系數(shù)的項時,0前邊不顯示符號,當(dāng)然,這樣也可以理解成當(dāng)系數(shù)為0時,忽略這一項。這也是本程序中一個不完美的地方。
我在設(shè)計減法函數(shù)的時候由于考慮不夠充分就直接編寫程序,走了很多彎路,不得不停下來仔細(xì)研究算法,后來發(fā)現(xiàn)由于前邊的加法函數(shù)完全適用于減法,只不過是將二元多項式B的所有項取負(fù)再用加法函數(shù)即可,可見算法的重要性不低于程序本身。
3、程序的調(diào)試中的經(jīng)驗及體會
我在調(diào)試過程中,發(fā)生了許多小細(xì)節(jié)上的問題,它們提醒了自己在以后編程的時候要注意細(xì)節(jié),即使是一個括號的遺漏或者一個字符的誤寫都會造成大量的錯誤,浪費(fèi)許多時間去尋找并修改,總結(jié)的教訓(xùn)就是寫程序的時候,一定要仔細(xì)、認(rèn)真、專注。
我還有一個很深的體會就是格式和注釋,由于平時不注意格式和注釋這方面的要求,導(dǎo)致有的時候在檢查和調(diào)試的時候很不方便。有的時候甚至剛剛完成一部分的編輯,結(jié)果一不注意,就忘記了這一部分程序的功能。修改的時候也有不小心誤刪的情況出現(xiàn)。如果注意格式風(fēng)格,并且養(yǎng)成隨手加注釋的習(xí)慣,就能減少這些不必要的反復(fù)和波折。還有一點,就是在修改的時候,要注意修改前后的不同點在哪里,改后調(diào)試結(jié)果要在原有的基礎(chǔ)上更加精確。
大學(xué)生數(shù)據(jù)結(jié)構(gòu)心得體會精選篇5
一.實驗內(nèi)容:
實現(xiàn)哈夫曼編碼的生成算法。
二.實驗?zāi)康模?/p>
1、使學(xué)生熟練掌握哈夫曼樹的生成算法。
2、熟練掌握哈夫曼編碼的方法。
三.問題描述:
已知n個字符在原文中出現(xiàn)的頻率,求它們的哈夫曼編碼。
1、讀入n個字符,以及字符的權(quán)值,試建立一棵Huffman樹。
2、根據(jù)生成的Huffman樹,求每個字符的Huffman編碼。并對給定的待編碼字符序列進(jìn)行編碼,并輸出。
四.問題的實現(xiàn)
(1)郝夫曼樹的存儲表示
typedef struct{
unsigned int weight;
unsigned int parent,lchild,rchild;
}HTNode,__HuffmanTree; //動態(tài)分配數(shù)組存儲郝夫曼樹
郝夫曼編碼的存儲表示
typedef char__ __HuffmanCode;//動態(tài)分配數(shù)組存儲郝夫曼編碼
(2)主要的實現(xiàn)思路:
a.首先定義郝夫曼樹的存儲形式,這里使用了數(shù)組
b.用select遍歷n個字符,找出權(quán)值最小的兩個
c.構(gòu)造郝夫曼樹HT,并求出n個字符的郝夫曼編碼HC
總結(jié)
1.基本上沒有什么太大的問題,在調(diào)用select這個函數(shù)時,想把權(quán)值最小的兩個結(jié)點的序號帶回HuffmanCoding,所以把那2個序號設(shè)置成了引用。
2.在編程過程中,在什么時候分配內(nèi)存,什么時候初始化花的時間比較長
3.最后基本上實現(xiàn)后,發(fā)現(xiàn)結(jié)果仍然存在問題,經(jīng)過分步調(diào)試,發(fā)現(xiàn)了特別低級的輸入錯誤。把HT[i].weight=HT[s1].weight+HT[s2].weight;中的s2寫成了i
附:
//動態(tài)分配數(shù)組存儲郝夫曼樹
typedef struct{
int weight; //字符的權(quán)值
int parent,lchild,rchild;
}HTNode,__HuffmanTree;
//動態(tài)分配數(shù)組存儲郝夫曼編碼
typedef char__ __HuffmanCode;
//選擇n個(這里是k=n)節(jié)點中權(quán)值最小的兩個結(jié)點
void Select(HuffmanTree &HT,int k,int &s1,int &s2)
{ int i;
i=1;
while(i<=k && HT[i].parent!=0)i++;
//下面選出權(quán)值最小的結(jié)點,用s1指向其序號
s1=i;
for(i=1;i<=k;i++)
{
if(HT[i].parent==0&&HT[i].weight
}
//下面選出權(quán)值次小的結(jié)點,用s2指向其序號
for(i=1;i<=k;i++)
{
if(HT[i].parent==0&&i!=s1)break;
}
s2=i;
for(i=1;i<=k;i++)
{
if(HT[i].parent==0&&i!=s1&&HT[i].weight
}
}
//構(gòu)造Huffman樹,求出n個字符的編碼
void HuffmanCoding(HuffmanTree &HT,HuffmanCode &HC,int __w,int n)
{
int m,c,f,s1,s2,i,start;
char __cd;
if(n<=1)return;
m=2__n-1; //n個葉子n-1個結(jié)點
HT=(HuffmanTree)malloc((m+1)__sizeof(HTNode)); //0號單元未用,預(yù)分配m+1個單元
HuffmanTree p=HT+1;
w++; //w的號單元也沒有值,所以從號單元開始
for(i=1;i<=n;i++,p++,w++)
{
p->weight=__w;
p->parent=p->rchild=p->lchild=0;
}
for(;i<=m;++i,++p)
{
p->weight=p->parent=p->rchild=p->lchild=0;
}
for(i=n+1;i<=m;i++)
{
Select(HT,i-1,s1,s2); //選出當(dāng)前權(quán)值最小的
HT[s1].parent=i;
HT[s2].parent=i;
HT[i].lchild=s1;
HT[i].rchild=s2;
HT[i].weight=HT[s1].weight+HT[s2].weight;
}
//從葉子到根逆向求每個字符的郝夫曼編碼
HC=(HuffmanCode)malloc((n+1)__sizeof(char__)); //分配n個字符編碼的頭指針變量
cd=(char__)malloc(n__sizeof(char)); //分配求編碼的工作空間
cd[n-1]='\0';//編碼結(jié)束符
for(i=1;i<=n;i++) //逐個字符求郝夫曼編碼
{
start=n-1; //編碼結(jié)束符位置
for(c=i,f=HT[i].parent;f!=0;c=f,f=HT[f].parent) //從葉子到根逆向求編碼
{
if(HT[f].lchild==c)cd[--start]='0';
else
cd[--start]='1';
}
HC[i]=(char__)malloc((n-start)__sizeof(char)); //為第i個字符編碼分配空間
strcpy(HC[i],&cd[start]);//從cd復(fù)制編碼到HC
}
free(cd); //釋放工作空間
}
void main
{ int n,i;
int__ w; //記錄權(quán)值
char__ ch; //記錄字符
HuffmanTree HT;
HuffmanCode HC;
cout<<“請輸入待編碼的字符個數(shù)n=”;
cin>>n;
w=(int__)malloc((n+1)__sizeof(int)); //記錄權(quán)值,號單元未用
ch=(char__)malloc((n+1)__sizeof(char));//記錄字符,號單元未用
cout<<“依次輸入待編碼的字符data及其權(quán)值weight”<
for(i=1;i<=n;i++)
{
cout<<“data[”<
}