参考资料,少熬夜!数据结构课程设计心得体会范文【实用4篇】【导读指引】三一刀客最漂亮的网友为您整理分享的“数据结构课程设计心得体会范文【实用4篇】”文档资料,供您学习参考,希望此文档对您有所帮助,喜欢就分享给朋友们吧!数据结构课程设计心得体会【第一篇】本次课程设计所用到的知识完全是上学期的知识,通过这次课程设计,我认识到了我对数据结构这门课的掌握程度。首先我这个课程设计是关于二叉树的,由于是刚接触二叉树,所以我掌握的长度并不深。在编程之前我把有关于二叉树的知识有温习了一遍,还好并没有忘掉。二叉树这章节难度中上等,而且内容广泛,所以我只掌握了百分之六七十。然后,在编程中我认识到了自己动手能力的不足,虽然相比较大二而言进步很大,但是我还是不满意,有的在编程中必须看书才能写出来,有的靠百度,很少是自己写的。还好,我自己组装程序的能力还行,要不这东拼西凑的程序根本组装不了。在编程中我还认识到了,编程不能停下,如果编程的时间少了,知识忘的会很快,而且动手也会很慢。同时,同学之间的合作也很重要,每个人掌握的知识都不一样,而且掌握程度也不一样,你不会的别的同学会,所以在大家的共同努力下,编程会变得很容易。在这次编程中,我了解到了自己某些方面的不足,比如说链表的知识,虽然我能做一些有关于链表的编程,但是很慢,没有别人编程的快,另外,二叉树和图的知识最不好掌握,这方面的知识广泛而复杂。以前,没动手编程的时候觉得这些知识很容易,现在编程了才发现自己错了,大错特错了,我们这个专业最重视的就是动手编程能力,如果我们纸上写作能力很强而动手编程能力很差,那我们就白上这个专业了。计算机这个专业就是锻炼动手编程能力的,一个人的理论知识再好,没有动手编程能力,那他只是一个计算机专业的“入门者”。在编程中我们能找到满足,如果我们自己编程了一个程序,我们会感到自豪,而且充实,因为如果我们专研一个难得程序,我们会达到忘我的境界,自己完全沉浸在编程的那种乐趣之中,完全会废寝忘食。编程虽然会乏味很无聊,但是只要我们沉浸其中,你就会发现里面的乐趣,遇到难得,你会勇往直前,不写出来永不罢休;遇到容易的,你会找到乐趣。编程是很乏味,但是那是因为你没找到编程重的乐趣,你只看到了他的不好,而没有看到他的好。其实,只要你找到编程中得乐趣,你就会完全喜欢上他,不编程还好,一编程你就会变成一个两耳不闻窗外事的“植物人”。可以说只要你涉及到了计算机,你就的会编程,而且还要喜欢上他,永远和他打交道,我相信在某一天,我们一定会把他当作我们不可或缺的好朋友。数据结构课程设计心得体会【第二篇】通过两周的课程设计,完成了预定的目标,其中有很多的参考资料,少熬夜!随想。老师的题目发下来的很早,大概提前了3周,当时就着手搜索有关线索二叉树的思想,思路,借了一本《数据结构-c语言描述》,在大体上就有了一个轮廓,先是输入二叉树,在对二叉树进行线索化,依次往下,但在具体实现时,遇到了很多问题:首先是思想的确定,其非常重要,以前有了这个想法,现在愈加清晰起来,因此,花了大量的时间在插入删除的具体操作设计上,大概三个晚上的时间,对其中什么不清晰明确之处均加以推敲,效果是显著的,在上机上相应的节约了时间。通过具体的实验编码,思路是对的,但是在小问题上摔了一次又一次,大部分时间都是花在这方面,这个节点没传过来啊之类的,以后应该搞一个小册子,记录一些错误的集合,以避免再犯,思想与C语言联系起来,才是我们所需要的,即常说的理论与实践的关系。数据结构是基础的一门课,对于有过编程经验的人,结合自己的编程体会去悟它的思想;而且我觉得随着编程经历的丰富对它的体会越深入,最初接触是对一些思想可能只是生硬的记忆,随着学习的深入逐渐领悟了很多。看了这次课程设计的题目,虽然具体要求没有看清,但是总结一下,可以看出,其需要我们能把一个具体案例或一件事情反映为程序来表达,数据结构就是桥梁,通过自己的设计,使应用能力得以融汇,对与问题,具有了初步的分析,继而解决之的能力,感觉对以后的学习会有很大的`帮助,学习无非是用于实践。认识到自己的不足,希望能有进一步的发展。数据结构课程设计【第三篇】数据结构课程设计1、赫夫曼编码器设计一个利用赫夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。要求:1)将权值数据存放在数据文件(文件名为,位于执行程序的当前目录中)2)初始化:键盘输入字符集大小26、26个字符和26个权值(统计1篇英文文章中26个字母),建立哈夫曼树;3)编码:利用建好的哈夫曼树生成哈夫曼编码;4)输出编码(首先实现屏幕输出,然后实现文件输出);5)界面优化设计。代码如下:#include#include#include#include#defineN200typedefstructHTNode//结构体{intWeight;charch;intParent,Lchild,Rchild;}HTNode;typedefchar**HCode;voidSave(intn,HTNode*HT)//把权值保存到文件{FILE*fp;参考资料,少熬夜!inti;if((fp=fopen(“”,“wb”))==NULL){printf(“cannotopenfilen”);return;}for(i=0;iif(fwrite(&HT[i]。Weight,sizeof(structHTNode),1,fp)!=1)printf(“filewriteerrorn”);fclose(fp);system(“cls”);printf(“保存成功!”);}voidCreate_H(intn,intm,HTNode*HT)//建立赫夫曼树,进行编码{intw,k,j;charc;for(k=1;kif(k{printf(“n请输入权值和字符(用空格隔开):”);scanf(“%d”,&w);scanf(“%c”,&c);HT[k]。ch=c;HT[k]。Weight=w;}elseHT[k]。Weight=0;HT[k]。Parent=HT[k]。Lchild=HT[k]。Rchild=0;}intp1,p2,w1,w2;for(k=n+1;kp1=0;p2=0;w1=32767;w2=32767;for(j=1;j{if(HT[j]。Parent==0){if(HT[j]。Weight{w2=w1;p2=p1;w1=HT[j]。Weight;p1=j;}elseif(HT[j]。Weight{w2=HT[j]。Weight;p2=j;}}}HT[k]。Lchild=p1;HT[k]。Rchild=p2;HT[k]。Weight=HT[p1]。Weight+HT[p2]。Weight;HT[p1]。Parent=k;HT[p2]。Parent=k;}printf(“输入成功!”);}voidCoding_H(intn,HTNode*HT)//对结点进行译码{intk,sp,fp,p;char*cd;参考资料,少熬夜!HCodeHC;HC=(HCode)malloc((n+1)*sizeof(char*));cd=(char*)malloc(n*sizeof(char));cd[n-1]='';printf(“************************n”);printf(“CharCodingn”);for(k=1;k{sp=n-1;p=k;fp=HT[k]。Parent;for(;fp!=0;p=fp,fp=HT[fp]。Parent)if(HT[fp]。Lchild==p)cd[--sp]='0';elsecd[--sp]='1';HC[k]=(char*)malloc((n-sp)*sizeof(char));strcpy(HC[k],&cd[sp]);printf(“%c%sn”,HT[k]。ch,HC[k]);}printf(“************************n”);free(cd);}voidRead(intn,HTNode*HT)//从文件中读出数据{inti;FILE*fp;if((fp=fopen(“”,“rb”))==NULL){printf(“cannotopenfilen”);exit(0);}for(i=0;ifread(&HT[i]。Weight,sizeof(structHTNode),1,fp);//printf(“%dn”,HT[i]。Weight);}Coding_H(n,HT);fclose(fp);}voidPrint_H(intm,HTNode*HT)//输出赫夫曼造树过程{intk;printf(“************************n”);printf(“NumWeightParLChRChn”);for(k=1;kprintf(“%d”,k);printf(“%d”,HT[k]。Weight);printf(“%d”,HT[k]。Parent);printf(“%d”,HT[k]。Lchild);printf(“%dn”,HT[k]。Rchild);}printf(“************************n”);}voidDecode(intm,HTNode*HT)//对输入的电文进行译码{inti,j=0;chara[10];参考资料,少熬夜!charendflag='2';i=m;printf(“输入发送的编码,以‘2’结束:”);scanf(“%s”,&a);printf(“译码后的字符:”);while(a[j]!='2'){if(a[j]=='0')i=HT[i]。Lchild;elsei=HT[i]。Rchild;if(HT[i]。Lchild==0)//HT[i]是叶结点{printf(“%c”,HT[i]。ch);i=m;//回到根结点}j++;}printf(“n”);if(HT[i]。Lchild!=0&&a[j]!='2')printf(“ERROR”);}intmain()//主函数{intn,m,c;HTNodeHT[N];do{system(“color2f”);//运行环境背景颜色。printf(“nntt*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=ntt”);printf(“nttt赫夫曼编译码系统ttt”);printf(“nntt*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=ntt”);printf(“nttt1.输入权值、字母nttt2.把数据写入文件nttt3.输出赫夫曼编码表nttt”);printf(“4.输出赫夫曼译码表nttt5.输入编码并译码。nttt6.从文件中读出数据nttt7.退出”);printf(“nnttt请选择:”);scanf(“%d”,&c);switch(c){case1:system(“cls”);printf(“输入多少结点:”);scanf(“%d”,&n);m=2*n-1;Create_H(n,m,HT);break;case2:system(“cls”);Save(n,HT);break;case3:system(“cls”);Print_H(m,HT);break;case4:system(“cls”);Coding_H(n,HT);break;case5:system(“cls”);Decode(m,HT);break;case6:system(“cls”);Read(n,HT);break;case7:system(“cls”);exit(0);}}while(1);return0;}参考资料,少熬夜!运行界面如下:2、学生成绩管理(链表实现)要求:实现如下功能:增加、查找、删除、输出、退出。代码如下:#include#include#includetypedefstructscore//定义成绩信息结构体{charNumber[20];charName[20];charChi