- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构和C语言程序设计复习
数据结构
数据结构
逻辑结构
存储结构
操作
线性结构
树
型
结构
图
状
结构
集
合
顺 序
存 储
结 构
链 式
存 储
结 构
虚拟存储结构
数组
指针
2001
2000
1999
线性
结构
next值(5)
线性表的归并(12)
两个栈模拟队列(12)
树型
结构
遍历序列
二叉树〈=〉森林
树的基本概念
在二叉树上求结点的祖先
三次树前后序确定树(5)
中序线索树上求后序后继(20)
判断二叉树相似(8)
按层次顺序遍历二叉树(12)
先序+中序建立二叉树(12)
图状
结构
关键路径
(逆)邻接表的生成
图的深度优先,广度优先,最小生成树(12)
集合:
查找
排序
外排
最佳归并树的虚段
平衡二叉树
二叉排序树 ASL分析
Hash表平均查找长度公式(5)
B-树的深度定义(5)
各类排序复杂度(8)
排序时间复杂度证明(8)
有序表查找长度证明(8)
置换-选择排序(8)
删除二叉树结点(12)
Hash表的删除(12)
二叉排序树,平衡二叉树(7)
内部排序第一趟结果(9)
堆定义、堆排序与其它排序的比较(8)
置换-选择排序(4)
算法设计与分析
递归方程求解
递归方程求解
程序题
所占比例
2/10 35’
3/12 40’
5/10 60’
总结所考知识点分布:
线性结构:
KMP算法中next数组的值
线性表的归并
两个栈模拟队列
栈的输出序列
栈、队列基本操作的时间复杂度
树:
二叉树和树的定义
二叉树的前序、中序、后序、层次遍历
哪些遍历序列可唯一决定二叉树
二叉树的结点查找
二叉树的相似判断
求二叉树结点的祖先结点
中序线索二叉树及中序遍历线索二叉树
在中序线索二叉树上求其他序的前驱、后继
Huffman树的构造
森林(树)与二叉树的转换
图:
图的深度优先、广度优先遍历
生成树
最小生成树的Kruskal算法
(逆)邻接表的生成
拓扑排序
关键路径
最短路径Dijkstra算法、Floyd算法
查找:
有序表ASL证明
索引排序表的查找
二叉排序树的插入、删除、ASL分析
平衡二叉树的插入、删除、
B-树的定义、深度、插入
Hash表的构造、查找、删除及ASL分析
排序:
各类排序的时间空间复杂度分析
稳定性分析
基于比较的排序在最坏情况下能达到的最好的时间复杂度证明
各类排序的第一趟排序结果
堆的定义
置换选择排序的初始归并段构造
初始归并段平均长度的证明
最佳归并树的虚段
算法设计与分析:
递归方程求解
例题分析
例:假设有两个按元素值非递减有序排列的线性表A和B,均以单链表作存储结构,请编写算法将表A和表B归并成一个按元素非递减有序(允许值相同)排列的线性表C,并要求利用原表(即表A和表B)的结点空间存放表C。
void MergeList_L(LinkList La, LinkList Lb,LinkList Lc)
//已知单链线性表La和Lb的元素按值非递减排列。
//归并La和Lb得到新的单链线性表Lc,Lc的元素也按值非递减排列。
{
pa=La-next;pb=Lb-next;
Lc=pc=La; //用La的头结点作为Lc的头结点
while(papb)
{
if(pa-data=pb-data)
{ pc-next=pa; pc=pa;pa=pa-next;}
else {pc-next=pb;pc=pb;pb=pb-next;}
}
pc-next=pa?pa:pb; //插入剩余段
free(Lb); //释放Lb的头结点
}//MergeList_L
例:已知两个单链表A和B分别表示两个集合,其元素递增排列,请编写算法求C=A?B,要求C按元素递增排列,并利用原表(即表A和表B)的结点空间存放表C。
void Join(Linklist la, linklist lb, linklist lc)
{
pa=la-next;pb=lb-next;lc=la;pc=la;
while(papb)
{if(pa-datapb-data){p=pa;pa=pa-next;free(p);}
else if(pa-datapb-data) {p=pb;pb=pb-next;free(p);}
else{pc-next=pa;pc=pa;pa=pa-next;
p=pb;pb=pb-next;free(p);
}
}
pc-next=nil;
while(pa){p=pa;pa=pa-next;free(p);}
while(pb){p=pb;pb=pb-next;fre
文档评论(0)