数据结构总结

一.思维导图

二.重要概念

1.算法

(1)评价算法的优劣性:时间复杂度(随问题规模变化)和空间复杂度(随占用额外的存储空间变化)

2.链表

(1)头插法与尾插法

p->next=head->next;
head->next=p;//头插法
tail->next=p;
tail=p;//尾插法

3.栈

(1).栈的插入与删除是对栈顶操作的,插入要判断是否栈满,删除要判断是否栈空

top==maxsize-1;//栈满条件
top==-1;//栈空条件

(2).栈的基本操作为push(入栈)和pop(出栈)

4.队列

(1).队列的插入在队尾,删除在队首,插入要判断是否队满,删除要判断是否队空

(sq->r + 1)%maxsize ==sq->f;//队满
sq->f==sq->r;//队空

(2).队的基本操作为enqueue(入队)和dequeue(出队)

5.串

(1)串的操作对象不是一个字符,而是串的整体

(2)串中next函数与nextval函数的计算

三.疑难问题及解决方案

疑难问题:不懂得如何计算next函数

例如:模式串P=‘abaabcac',求其next函数数值序列

解决方案:

通过查找所求位置的前段部分前缀与后缀相同的字符,其next为相同字符数加1,若无,则next值为1

通过此方法可求得该next值为01122312

posted @ 2020-03-29 09:12  201921123081王永滨  阅读(81)  评论(0编辑  收藏  举报