数据结构总结
一.思维导图
二.重要概念
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