待更新
待更新
待更新
* 初始化:
Head->pre = Head->next = NULL //指向空
* 头插入:
为空时://pHead->next->pre = pNewNode; //不需要,因为该指针为NULL
非空时:pHead->next->pre = pNewNode; //需要
* 初始化:
Head->pre = Head->next = Head; //指向自身
* 为空:
Head->next = Head;
* 遍历结束:
cur->next = Head;
线性表分为顺序存储和链式储存; 链式储存分为: 单链表, 静态链表, 循环链表, 双向链表
是一种"先进后出"的存储结构
* 静态栈:数组实现
(1)栈结构
只需栈数组和栈顶位置两个元素就可确定一个栈
(2)初始化
栈顶位置为-1
* 动态栈:链表实现
(1)栈结点
指针域和数据域
(2)栈结构
bottom和top指针,bottom指针永远指向栈底结点,top指针指向栈顶结点
(3)初始化
bottom和top指针,都指向栈底结点
是一种"先进先出"的存储结构
* 静态队列:数组实现
(1)静态队列必须是循环队列
(2)队列结构
数据域为固定长度数组,front为第一个元素下标,rear为最后一个有效元素的下个位置
(3)初始化
front和rear为0
(4)入队和出队下标计算
front=(front++)%数组长度
rear =(rear++)%数组长度
(5)空满判断
空:front=rear
满:(rear+1)%数组长度 == front
* 动态队列:链表实现
(1)队列结构
队头指针和队尾指针,及队列元素个数
(2)初始化
队头指针指向头结点,头结点指向NULL
队尾指针指向尾结点, 尾结点指向NULL
头尾结点不存放数据
(3)入队
首次入队,队头结点和队尾结点必须都指向首结点
除首次入队外,尾结点都指向新结点,新结点指向NULL
顺序存储:需要将二叉树转化为满二叉树,在申请的连续空间中从上到下,从左到右依次存储,比较浪费空间
链式存储:动态申请空间进行存储【常用】
* 四种遍历方法:
先序/中序/后序/层次遍历
* 实现方式:
先序/中序/后序/遍历【递归实现】
先序/中序/后序/遍历【堆栈实现】
层次遍历【队列实现】
* 二叉树初始化注意点:
推出判断:考虑换行符\n
传参初始化:必须传指针
返回值初始化:返回指针
待更新