欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 数据结构线性表心得体会

数据结构线性表心得体会

时间:2019-07-03 22:50

学习数据结构的心得体会

数据结构学习体会及教学建议时间过的很快,一转眼一学期的数据结构课程就已经快要告一段落了,在接触这么课以前,我觉得编程无非就是会写代码就好了。

然而事实上数据结构对于程序来说,有着非常重要的地位。

随着计算机应用领域的不断扩大,非数值计算的问题占据了当今计算机应用的绝大部分,简单的数据类型已经远远不能满足需要,个数据元素之间的复杂关系已经不是普通数学方程式能够表达的了,所以数据结构就扮演了十分重要的角色。

在学期初,我觉得数据结构还是比较简单的,但可能由于之前c语言学习对指针掌握的不够熟练,导致在数据结构中接触到与指针有关的问题,例如线性表,堆栈,队列,二叉树等问题的时候,都会显得有些吃力。

但是在不断学习数据结构的过程中我也不断加强了对指针的学习,现在我已经能够基本掌握指针的相关知识并且能够熟练运用了。

这一学期的学习下来我发现想要学好数据结构有以下几点经验{虽然可能我的数据结构学的并不是很好}1.初步了解算法思想、原理想要弄清楚一个算法的实现,首先要知道这个算法的大致原理,这是最简单的一步,也是最基础的一步,只有明白算法想要干什么,才能弄清楚相应的代码段是为什么2.钻研课本代码段对于书上的算法代码,我们一定要仔细钻研每一步的具体含义和目的,在此基础上深入的了解算法的实现过程,而不是一味的四级硬背,不仅无聊,而且效率低下。

3.查找各种算法资料例如排序算法,其实历史上有很多不同的排序算法,书上

求一个数据结构作业 一个非有序线性表 把它变成一个有序线性表 比如: 1,2,5,2,4,3,5。

变为12345

在长度为m的单链表后链接一个链表,所以应该要找到该长度m的链表的最后一个节点(复杂度为m,所以答案为C),然后将最后的节点指向下一个节点的地址赋值为长度为n的单链表的首节点。

求数据结构做二叉树实验的心得体会、、、

#include#include#define LIST_INIT_SIZE 100#define LISTINCREMENT 10typedef struct{ int * elem; int length; int listsize;}SqList;\\\/\\\/SqList sq;void InitList_Sq(SqList *sq) \\\/\\\/初始化列表{ sq->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); sq->length=0; sq->listsize=LIST_INIT_SIZE; printf(---申请空间成功---!\\\ );}void GetElem(SqList *sq,int i)\\\/\\\/获取第i位置元素的值{ int *p; p=&(sq->elem[i-1]); printf(%d,*p); printf(\\\ );}int ListInsert_Sq(SqList *sq,int i,int a)\\\/\\\/在i位置之前插入a{ int *p,*q; if(i<=0||i>sq->length+1) { printf(---位置不合法---!\\\ ); return 0; } if(sq->length>=sq->listsize) { int* newbase=(int *)realloc(sq->elem,(sq->listsize+LISTINCREMENT)*sizeof(int)); if(!newbase) { printf(申请空间溢出\\\ ); return 0; } sq->elem=newbase; sq->listsize+=LISTINCREMENT; } p=&(sq->elem[i-1]);\\\/\\\/p指向第i位置的元素 q=&(sq->elem[sq->length-1]);\\\/\\\/q指向最后一个元素 for(;q>=p;--q) *(q+1)=*q; *p=a; ++sq->length; return 1;}int ListDelete_Sq(SqList *sq,int i) \\\/\\\/删除i位置上的值{ int *p,*q; if(i<1||i>sq->length) return 0; p=&(sq->elem[i-1]);\\\/\\\/p指向第i位置的元素 q=sq->elem+sq->length-1;\\\/\\\/q指向最后一个元素 for(++p;p<=q;++p) { *(p-1)=*p; } --sq->length; return 1;}void visit(SqList *sq)\\\/\\\/输出数据{ int i=1; for(;i<=sq->length;i++) { int *p; p=&sq->elem[i-1]; printf(%d,*p); printf( ); }}void main(){ int i=1,a=0,boo=1,number=0; SqList s,*sq; sq=&s; InitList_Sq(sq); printf(初始化空表\\\ ); printf(输入数据个数:\\\ ); scanf(%d,&number); printf(输入%d个数据:,number); printf(\\\ ); for(;i<=number;i++) { scanf(%d,&a); if(boo=ListInsert_Sq(sq,i,a)) { printf(---插入成功

---\\\ ); } else { printf(---插入不成功,重新插入---

\\\ ); i=i-1; } } printf(输出所有元素\\\ ); visit(sq); printf(\\\ ); printf(输出删除的位置:); scanf(%d,&a); if(boo=ListDelete_Sq(sq,a)) { printf(---数据删除成功

---\\\ ); }else { printf(---没有删除成功---\\\ ); } printf(输出所有元素:\\\ ); visit(sq); printf(\\\ ); printf(输出要显示数据的位置:); scanf(%d,&a); printf(输出%d位置数值\\\ ,a); if(a<0||a>sq->length) { printf(---输出位置的数据不存在---\\\ ); } else { GetElem(sq,a); }}以上是可直接运行的源程序运行结果:---申请空间成功---!初始化空表输入数据个数:3输入1个数据:3---插入成功

---输入2个数据;8---插入成功

---输入3个数据:5---插入成功

---输出所有元素:3 5 8输出删除的位置:2---数据删除成功

---输出所有元素;3 8输出要显示数据的位置:2输出2位置数值:8

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片