数据结构基本知识点

上传人:m**** 文档编号:486267760 上传时间:2022-08-24 格式:DOCX 页数:6 大小:39.33KB
返回 下载 相关 举报
数据结构基本知识点_第1页
第1页 / 共6页
数据结构基本知识点_第2页
第2页 / 共6页
数据结构基本知识点_第3页
第3页 / 共6页
数据结构基本知识点_第4页
第4页 / 共6页
数据结构基本知识点_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《数据结构基本知识点》由会员分享,可在线阅读,更多相关《数据结构基本知识点(6页珍藏版)》请在金锄头文库上搜索。

1、数据结构基本知识点第一章 1、什么是数据结构 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 4类基本结构:集合;线性结构;树形结构;图状结构或网状结构。 2、数据结构的二元组表示:Data_Structure=/D是数据元素的有限集,S是D上关系的有限集。 3、算法的5大特性:有穷性; 4、衡量算法的标准:时间复杂度和空间复杂度 5、数据的逻辑结构分四类 6、数据结构写出逻辑结构,反之。 第二章 0、线性表的基本概念。 1、线性表的顺序存储的基本操作:Insert, EIs=n/2 D

2、elete. Edl=(n-1)/2 2、线性表的顺序存储的特点:连续地址,随机查找。 3、线性表的链式存储的特点:地址不保证连续,顺序查找。 重点1:结构类型 P28 Typedef struct LNode ElemType data; Struct LNode *next; LNode,*LinkList; (2)重点2:基本方法 Status GetElem_L(LinkList L,int i,ElemType &e); Status ListInsert_L(LinkList &L,int i,ElemType e); Status ListDelete_L(LinkList &L

3、,int i,ElemType &e); void CreateList_L(LinkList &L,int n); void Print(LinkList L) LinkList p=L-next;(有头结点) if(!p) printf(“this link is empty!n”); else printf(“%d,”,p-data); while(p-next) p=p-next; printf(“%d,”,p-data); printf(“n”); void CountNodes(LinkList L,int &nd) nd=0;/ LinkList p=L-next;(有头结点)

4、if(!p) printf(“this link is empty!n”); else nd+;/ while(p-next) p=p-next; nd+;/ voidCountAve(LinkList L,int &av) int n=0,s=0/ av=0; LinkList p=L-next;(有头结点) if(!p) printf(“this link is empty!n”); else s=s+p-data; n+;/ while(p-next) p=p-next;s=s+p-data; n+;/ av=s/n; return av;/ void PrintMax(LinkList

5、 L,) int max; LinkList p=L-next;(有头结点) if(!p) printf(“this link is empty!n”); else max=p-data; while(p-next) p=p-next; if(p-datamax) max=p-data;/ printf(“max=%dn”,max); void DeletaMaxNode(LinkList L,) int max; LinkList q,t;/q-记录p的前驱结点指针,t-保存最大结点的前驱指针。 LinkList p=L-next;(有头结点) q=L;/ if(!p) printf(“th

6、is link is empty!n”); else max=p-data;t=q;/ while(p-next) q=p; p=p-next; / if(p-datamax) max=p-data; t=q;/ q=t-next; t-next=q-next; free(q); (3)循环链表的特点:首尾特点 链表为空的条件:分有头链表与无头链表。 分清头结点,开始结点、尾结点。 第三章 栈和队列 1、栈和队列是端点受限操作的线性表。 2、栈的定义及特点:FILO 3、Push(&s,e) Pop(&s,&e)基本操作过程。 4、判定通过栈操作的序列正确否或可能性。 5、栈空或栈满的条件。

7、6、队列特性:FIFO 7、循环队列:为空的条件,为满的条件。 8、EnQueue(&Q,e)的操作 9、DeQueue(&Q,&e)的操作 第四章 串 1、串的定义与表示 2、空串与空白串的区别 3、串的基本操作 4、什么是模式匹配 5、int Index(string S,string T,int pos);作用P79 6、统计子串的个数 第五章 数组与广义表 1、 数组的定义 2、 数组元素存储方式:按行存储或按列存储(不同语言) 3、 数组元素地址的计算 (重点会计算) 数组 Aa.mb.n, 行数M=m-a+1, 列数N=n-b+1; 每个元素L个字节。 按行:loc(Aij)=lo

8、c(Aab)+(i-a)*N+(j-b)*L; 按列:loc(Aij)=loc(Aab)+(j-b)*M+(i-a)*L; 4、 广义表的定义。 5、 广义表的表示与存储 6、 广义表的长度与深度 7、 GetHead(T),GetTail(T)的作用。 第六章 树与二叉树 1、 树的定义与基本术语 2、 二叉树的定义与特点 3、 二叉树的5种基本形态 4、 二叉树的性质(1)(2)(3)(4)(5) 5、 满二叉树与完全二叉树的异同 6、 完全二叉树的相关计算 n个结点的完全二叉树,h=|log2n|+1, n0=|(n+1)/2|;n2=n0-1; n1=(n+1)%2 7、 二叉树的存储

9、结构:顺序结构(完全二叉树的顺序)与链式结构。 8、 二叉树的三种遍历方式 9、 计算结点数,叶子数 10、 线索二叉树中增加2个标志域LTag,RTag的作用 11、 会画线索树 12、 树与二叉树的相互转换 13、 森林与二叉树的相互转换 14、 树的先根遍历相当于二叉树的先根遍历,后根遍历相当于二叉树中根。 15、 Huffman树的定义 16、 Huffman树的建立、编码形成法则、WPL的计算。 第七章 图 1、 图的定义与术语P159 2、 图的表示与存储 3、 完全图的定义 4、 邻接矩阵与邻接链表的形成(重点) 5、 会写图的遍历结果:DFS(栈,碰头回) BFS(队列,齐步走

10、) (利用邻接矩阵或邻接表,进行遍历操作) 6、 连通分量与连通图 7、 最小生成树的确定(Prim,Kruskal,重点) 8、 会写拓扑排序的序列(队列) 9、 关键路径的确立 10、 最短路径。 11、 单源到其它各点的最短路径。 第八章 查找 1、 顺序表查找中,哨兵的谁,有什么效果 ASL=/2 2、 有序表查找中,最多查找比较的次数=|log2n|+1 3、 索引表查找结合有序分块顺序进行查找。ASL=log2(n/s+1)+s/2 4、 二叉排序树的定义 5、 创建二叉排序树、如何删除结点。 6、 平衡二叉树的定义、平衡因子,如何确立插入后不平衡,如何调整。 RR/LL/LR/R

11、L 7、 哈希函数,哈希表 8、 H(key1)=H(key2)=c;称为冲突,key1,key2互为同义词。 9、 哈希函数的目标是建立散布均匀的分布。 10、 处理冲突的方法:开放地址法,进行线性探测。 第九章 内部排序 1、直接插入法。O(n2),最好有序情况下为O(n)。 2、折半插入法。O(n2). 3、希尔排序法。最后一步长度必须为1.。O(n3/2)。 4、快速排序法。O(nlogn),最差O(n2)。会画过程,知道如何判定过程多少。 5、冒泡排序法、选择排序法。O(n2) 6、归并排序法。O(nlogn),最差O(n2) P283 初始关键字 49 38 65 97 76 13 27 一趟后 38 49 65 97 13 76 27 二趟后 38 49 65 97 13 27 76 三趟后 13 27 38 49 65 76 97 数据结构重点(60分)1.算法时间复杂度2.线性表查找用顺序表,删除和插入用链表3.广义表p108 4.树和二叉数(1.遍历二叉树和线索二叉树2.树和二叉树和森林的转换3.哈夫曼树和哈夫曼编码) 5.图的定义和语,图的遍历,最小生成树,邻接表和邻接矩阵,拓扑排序 6.二排序树和平衡二叉树,建散列表(除留取余法)7.第八,十一,十二章不考 8.综合题在第六,七,九章

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号