数据结构
文章平均质量分 65
晗溯
这个作者很懒,什么都没留下…
展开
-
5.4 二叉树的遍历
文章目录0.什么是遍历1.先序遍历2.中序遍历3.后序遍历4.中序遍历非递归算法5.层次遍历6.由遍历序列构造二叉树0.什么是遍历线性表遍历从头到尾依次访问先序:先访问根,再依次访问左子树和右子树中:左中右后:左右中1.先序遍历void PreQrder(BiTree T){ if(T!=NULL){ visit(T); PreOrder(T->lchild); PreOrder(T->rchild); }}O(n),n是结点个数2.中序遍历vo原创 2021-07-10 11:34:57 · 198 阅读 · 0 评论 -
5.3 二叉树的存储结构
文章目录1.顺序存储2.链式存储1.顺序存储定义:用一组连续的存储单元依次自上而下、自左至右存储完全二叉树上的结点元素如何表示逻辑关系?线性表中一个结点的后继结点就是他下一个存储单元存放的元素非完全二叉树就不能2.链式存储线性表中最多一个后继结点,用data和next两个域二叉树最多用两个结点typedef struct BiTNode{ ElemType data; struct BiTNode *lchild,*rchild;}BiTNode,*BiTree原创 2021-07-09 20:14:38 · 537 阅读 · 0 评论 -
4.2 KMP算法
文章目录1.什么是模式匹配?1.2 朴素模式匹配算法1.3 知识回顾2.KMP算法1.什么是模式匹配?串的模式匹配:在主串中找到与模式串相同的子串,并返回其所在位置1.2 朴素模式匹配算法int Index(SString S,SString T){ int k=1; int i=k,j=1; while(i<=S.length&&j<=T.length){ if(S.ch[i]==T.ch[i]){ i++;j++;//继续比较后继字符 }原创 2021-03-08 22:51:52 · 209 阅读 · 1 评论 -
3.2队列
文章目录1.定义2.顺序存储实现队列2.2 入队操作2.3出队操作--只能让队头元素出队2.4若不准浪费这个空间方案三:判断队列已满/已空2.6 rear指向队尾元素3.链式实现3.13.2入队(带头结点)1.定义队列:只允许在一端进行插入,在另一端删除的线性表重要术语:队头,队尾,空队列队列的基本操作2.顺序存储实现队列front:指向队头元素rear:指向队尾元素的后一个位置(下一个应该插入的位置)#define MaxSize 10//定义队列中元素的最大个数typedef原创 2021-03-04 17:24:25 · 208 阅读 · 1 评论 -
3.1 栈
文章目录1.基本概念1.1 定义及基本操作1.2 栈的基本操作2.顺序存输2.1 顺序栈的定义2.2 进栈操作3.链式存储1.基本概念1.1 定义及基本操作数据结构三要素:逻辑结构、数据的运算、存储结构栈(Stack)是只允许在一端进行插入或删除操作的线性表逻辑结构:与普通线性表相同数据的运算:插入、删除操作有区别重要术语:栈顶、栈底、空栈1.2 栈的基本操作2.顺序存输2.1 顺序栈的定义#define Maxsize 10 //定义栈中元素的最大个数typed原创 2021-03-03 22:17:41 · 158 阅读 · 1 评论 -
数据结构与算法
文章目录第二章顺序表单链表双链表第三章第二章顺序表单链表双链表第三章原创 2021-03-03 14:08:38 · 113 阅读 · 0 评论 -
2.2 顺序表的定义及操作
文章目录静态分配顺序表的实现--初始化顺序表的插入、删除顺序表的查找静态分配// A code blockvar foo = 'bar';// An highlighted block#include <iostream>#define Maxsize 10typedef struct{ int data[Maxsize];//用静态的“数组”存放数据元素 int length;//顺序表的当前长度} SqList;int main(){ SqList L;//声明一个原创 2021-03-01 17:19:48 · 199 阅读 · 0 评论