数据结构心得体会【篇一:数据结构学习总结】数据结构学习总结经过一学期对《数据结构与算法》的学习,大概的了解了基本的数据结构和相应的一些算法。下面总结一下自己一个学期学习的收获和心得。数据结构是什么:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。一般情况下,精心选择的数据结构能够带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。数据结构重要性:一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;另外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。一个逻辑数据结构能够有多种存储结构,且各种存储结构影响数据处理的效率。在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。常见的数据结构::定义:顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。基本运算:置表空:sqlsetnull(l)判表满:sqlempty(l)求表长:sqllength(l)插入:sqlinsert(l,i,x)按序号取元素:sqlget(l,i)删除:sqldelete(l,i)按值查找:sqllocate(l,x):链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是经过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点能够在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比于线性表顺序结构,链表比较方便插入和删除操作。分类:单链表—用一组地址任意的存储单元存放线性表中的数据元素。循环链表—循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。基本运算:建立链表,插入节点,删除节点。:堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。要点:堆:顺序随意栈:后进先出(last-in/first-out)。基本算法:置空栈:initstack(s)判栈空:stackempty(s)判栈满:stackfull(s)取栈顶元素:gettop(s)入栈:push(s)出栈:pop(s):队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。在队列这种数据结构中,最先插入的元素将是最先被删除的元素;反之最后插入的元素将最后被删除的元素,因此队列又称为“先进先出”(fifo—firstinfirstout)的线性表。分类:顺序队列;链队;基本运算:初始化队列qini(q)入队qadd(q,x)出队qdel(q,x)判断队列是否为qempty(q)判断队列是否为满qfull(q):对阵矩阵;三角矩阵;稀疏矩阵;:二叉树是每个节点最多有两个子树的有序树。一般子树被称作“左子树”(leftsubtree)和“右子树”(rightsubtree)。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的i-1次方个结点;深度为k的二叉树至多有2^(k)-1个结点;对任何一棵二叉树t,如果其终端结点数(即叶子结点数)为n0,度为2的结点数为n2,则n0=n2+1。(1)完全二叉树——若设二叉树的高度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层有叶子节点,而且叶子节点都是从左到右依次排布,这就是完全二叉树。(2)满二叉树——除了叶结点外每一个结点都有左右子叶且叶结点都处在最底层的二叉树,。(3)深度——二叉树的层数,就是高度。性质:(1)在二叉树中,第i层的结点总数不超过2^(i-1)
数据结构心得体会 来自淘豆网m.daumloan.com转载请标明出处.