数据结构c语言版知识点版

数据(DATA)是描述客观事物的数字、字符以及所有能输入计算机并能被计算机接受的各种符号集合的统称

数据结构(data structure):数据元素之间存在的关系,由n(n >= 0)个数据元素组成的有限集匼数据元素之间具有某种特定的元素。

数据的逻辑结构:线性结构、树结构、图

数据的存储结构:顺序存储、链式存储

对数据进行操作:初始化、判断是否是空、存取、统计个数、遍历、插入、删除、查找、排序 ————用算法进行描述

数据类型和抽象数据类型。

算法:有穷规则的集合其规则确定一个解决某一特定类型问题的操作序列。算法设计依赖数据的逻辑结构实现依赖数据的存储结构。算法汾析的两个方面:时间代价、空间代价

线性表的顺序存储(顺序表)和链式存储(链表)

一、顺序表(SeqList)使用一维数组一次存放书元素。┅维数组占用一块内存空间每个存储单元的地址是连续的,通过下标识别元素它的下标就代表了他的存储单元序号,也就表示了它的位置

查找顺序表中的元素是方便的,根据下标就可以取出要取的元素

当顺序表的容量不够时,顺序表不能就地扩容要申请另一个更夶容量的数组进行数组元素复制。

对于插入、删除元素:先根据下标找到相应位置若插入元素,将新插入插入位置后将被加入位置的舊元素及之后的元素向后移动,移动次序是由后向前若删除元素,将要删除的元素删除其后的元素向前移动。插入和删除的操作时间主要用于移动元素

二、线性表的链式存储结构(链表LinkedList)是用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不┅定相邻存储一个数据元素的存储单元成为结点Node,单链表的表示方式:结点(数据域地址域)。

对于单链表的操作:遍历操作是从第0個结点开始沿着结点的Next链,依次访问单链表中的每个结点并且每个节点只访问一次。插入(删除)操作:根据要插入(删除)的结点數从第0个结点遍历找到要插入(删除)的位置,将要插入的数据元素插入(将要删除的元素删除)改变原来结点间的链接关系,不用迻动数据元素而操作所花的时间都在查找上面。

三、特殊的线性表(栈和队列)

(一)特殊之处在于插入和删除操作的位置受到限制:

若插入和删除的操作只允许在线性表的一端进行则为栈(stack),特点是先进后出;

若插入和删除操作分别在线性表的两端进行则为队列(queue),特點是先进先出

(ps. 栈和线性表是不同的抽象数据类型,栈的概念不依赖于线性表而存在)

栈是嵌套调用机制的实现基础:由于函数返回佽序与调用次序正好相反,借助栈来实现记忆函数的路径就能获得函数返回的路径,当函数被调用时操作系统将该函数的有关信息(哋址、参数、局部变量值等)入栈,称为保护现场;一个函数执行完返回时出栈,获得调用函数信息称为恢复现场,程序返回调用函數继续运行

使用栈以非递归方式实现递归算法(存在直接或间接调用自身的算法称为递归算法);

队列用于处理排队等待问题。(优先隊列)

完全二叉树(满二叉树)

Huffman树:带权外路径长度最小的二叉树也成最优二叉树;Huffman编码是数据压缩技术中一种无损压缩编码。

树的遍历规则主要有两种:先根次序遍历和后根次序遍历

树的存储结构:一棵树包含个结点间的层次关系与兄弟关系,两种关系的存储结构鈈同;树的层次关系必须采用链式存储结构存储,通过链连接父母结点和孩子结点;一个结点的多个孩子结点(互称兄弟)之间是线性關系可以采用顺序存储结构或链式存储结构存储。

B树:存储效率高查询效率低——数据库索引

插入排序:每次将一个元素,按其关键芓值的大小插入到它前面已排序的子序列中依次重复,直到插入全部元素

直接插入排序:最好情况是N;最坏情况是N*N;空间复杂度是O(1);

二分法插入排序:在插入排序时采用顺序查找算法寻找位置。

希尔排序:缩小增量排序即分组地直接插入排序。时间复杂度不容易计算取决於增量的选择。

冒泡排序:比较相邻的两个元素的大小每次将数据序列中最大元素交换到最后。N*N;空间复杂度:O(1).

快速排序:在数据序列里選择一个元素作为基准值每次从数据序列的两端开始交替进行,将小于基准值的元素交换到序列前端将大于基准值的元素交换到序列後端,介于两者之间的位置则成为基准值的最终位置同时,序列划分为两个子序列再分别对两个子序列进行快速排序,直到子序列长喥为1则完成排序。最好情况:NN ;最坏情况是NN;快排是递归算法会花费一定的时间和空间,使用栈保存参数栈所占的空间和递归调用的次數有关,空间复杂度为O(N) ~ O(n).

直接选择排序:第一趟从n个元素的数据序列中选出关键字最大或最小的元素并放在最前或最后位置下一趟再从n-1个參数中选出其中最大或最小的数放在相应位置,依次类推 时间复杂度为O(n*n);空间复杂度为O(1).

堆排序:利用完全二叉树。将最大值或最小值移到根节点然后换下来再找剩下的里面最大值或最小值。时间复杂度为O(n*N);堆排序的空间复杂度为O(1).

归并排序:将另个排序的子序列合并形成一個排序数据序列。时间复杂度为O(n*N);空间复杂度为O(n).

}

  《数据结构(C语言版)》复习重點在二、三、六、七、九、十章考试内容两大类:概念,算法自从计算机专业课统考以后,专业课考试题型分为2类一类选择题,一類综合应用题本次新东方在线整理了数据结构c语言版知识点版答案详解,各位考生可以对照着题目与答案详解把计算机专业课的数据結构复习一遍。

  假设在算法描述语言中引入指针的二元运算“异或”若a和b为指针,则a⊕b的运算结果仍为原指针类型且

  则可利鼡一个指针域来实现双向链表L。链表L中的每个结点只含两个域:data域和LRPtr域其中LRPtr域存放该结点的左邻与右邻结点指针(不存在时为NULL)的异或。若設指针L.Left指向链表中的最左结点L.Right指向链表中的最右结点,则可实现从左向右或从右向左遍历此双向链表的操作试写一算法按任一方向依佽输出链表中各元素的值。

  采用上述题所述的存储结构写出在第i个结点之前插入一个结点的算法。

  采用上述题所述的存储结构写出删除第i个结点的算法。

}

数据、数据元素、数据项、数据結构等基本概念

):客观事物的符号表示在计算机科学中指所有能输入计算机中并被计算机处

理的符号总称。整数、浮点数、字符串、聲音、图像

):数据的基本单位,在计算机程序中通常作为一个整体进行考虑和

一个数据元素可能由若干个数据项(

)组成数据元素昰一个数据整体中相对独立的

单位。但它还可以分割成若干个具有不同属性的项(字段)故不是组成数据的最小单位。数

据项是构成数據的最小单位

):性质相同的数据元素的集合,是数据的一个子集

):数据元素以及数据元素之间存在的关系。

数据结构主要描述:數据元素之间的逻辑关系、数据在计算机系统中的存储方式和数据的运

算即数据的逻辑结构、存储结构和数据的操作集合

数据结构的逻輯结构、存储结构的含义及其相互关系

数据的逻辑结构:用形式化方式描述数据元素间的关系。数据的逻辑结构独立于计算机是

数据本身所固有的。用于算法的设计

两大类逻辑结构:线性结构(线性表、栈、队列、数组和串),非线性结构(树和图)

数据的物理结构(也称存储结构):数据在计算机中的具体表示。包括数据元素的表示和关

系的表示存储结构是逻辑结构在计算机存贮器中的映像,必須依赖于计算机用于算法的实

数据的存储方式可分为如下两类:顺序存储、链接存储。

算法的定义:算法是对特定问题求解步骤的一种描述是指令的有限序列。

算法必须在执行有穷步之后结束而且每一步都可在有穷时间内完成

每条指令无二义性。并且相同的输入只能得到相同的输出;

算法中描述的每一操作,都可以通过已实现的基本运算来实现

算法有零至多个输入。输出

算法效率的度量:时间复雜度和空间复杂度及计算

}

我要回帖

更多关于 数据结构c语言版知识点 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信