摘要: 本章思维导图: 1、线性表查找: (1)顺序查找:从表的一端开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录;如果扫描完整个表,其关键字和给定值比较都不等时,则表中没有所查的记录,查找不成功。优缺点:算法简单,对表结构无任何要求;但是平均查找长度较大 阅读全文
posted @ 2019-06-02 20:05 咸鱼汤 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 本章知识要点: 图的遍历重点:DFS:(和树的先序遍历类似)(1)递归过程(2)为了区别顶点是否被访问,附设访问标志数组visited[n],其初值为0,一旦某个顶点被访问,则其相应的置被赋为1; BFS:(和树的层次遍历类似)(1)分层搜索(2)①从图中某个顶点v出发,访问v,并置visited[ 阅读全文
posted @ 2019-05-19 23:03 咸鱼汤 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 本章学习内容: 1.list leave 以下是完整代码: 1 #include <iostream> 2 #include <queue> 3 using namespace std; 4 5 typedef struct 6 {//定义结点类型 7 int left;//左孩子下标 8 int 阅读全文
posted @ 2019-05-04 00:59 咸鱼汤 阅读(167) 评论(2) 推荐(0) 编辑
摘要: 第4章主要学习内容: BF算法最坏情况下的平均时间复杂度:O(n×m) KMP算法:O(n+m) 1.模式匹配 做这道题的时候直接用BF算法没有什么困难,就是要注意pos是取下标还是取位置,一开始没有注意到这个点所以在最后的返回值那里有错。用BF算法顺利地通过了前几个测试点,但是在最后一个测试点显示 阅读全文
posted @ 2019-04-14 21:54 咸鱼汤 阅读(186) 评论(1) 推荐(0) 编辑
摘要: 1.栈和队列:都是操作受限的线性表,插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样,但删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行 2.(PTA选择题出现)共享栈:利用栈底位置相对不变的特性,可以让两个顺序栈共享一个一维数据空间,将两个栈的 栈底分别设置在共 阅读全文
posted @ 2019-03-31 20:24 咸鱼汤 阅读(137) 评论(2) 推荐(0) 编辑
摘要: !!要特别注意的 (1)顺序表逻辑上相邻,存储空间相邻 (2)在顺序表中插入或删除一个元素,在插入位后的元素都要右移,因此时间复杂度为O(n) (3)链表有头结点使第一个元素与其他操作相同,空表和非空表操作相同 (4)单链表查找 (5)单链表插入:s->next=p->next; P->next=s 阅读全文
posted @ 2019-03-17 20:46 咸鱼汤 阅读(198) 评论(1) 推荐(0) 编辑