![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
鲁大师数据结构课
芜湖A飘
这个作者很懒,什么都没留下…
展开
-
第六章树和二叉树(所有树都能变成二叉树,包括森林)
一、树的定义 1、结构特点:有且只有一个根节点,有很多结点,结点只能有一个前驱和多个后继 2、递归理解:每个结点都可以被看做根节点(递归遍历的搜索) #include<bits/stdc++.h> using namespace std; int NodeCount(Tree T){ if(T空) n==0;//递归边界 else n=1+NodeCount(子树1)+...;//各节点数再加1 return 0; } 二、树的相关术语 1、空树,只有一个根节点 2、结原创 2021-10-18 19:51:33 · 378 阅读 · 0 评论 -
串的模式匹配算法
一、串的存储结构 1、串的顺序存储 (1)静态存储:利用静态数组 (2)动态存储:利用指针记录首元素地址,堆串 2、串的链式存储 (1)块链式存储结构:头尾指针加串长 二、串的模式匹配 1、模式匹配的BF算法(蛮力算法):指针遍历加回溯 2、KMP算法:指针遍历但不回溯:用递归写next才简单,,,不然没区别 (概念上还是要后退,但是后退方式不一样,这个后退由递归实现) aaac(有特例) aac next[3]=1 next的值求法,比对真前缀重合值 3、KMP改进法:aaac(有特例)(这特例就是改进样原创 2021-10-08 15:22:36 · 142 阅读 · 0 评论 -
第三章:栈与队列
一、栈 1、栈:是一种概念,依附于结构体实现(C++可以直接用stack,泛型) (1)顺序栈和链栈 (2)主要结构:栈底指针,栈头指针,栈容量(顺序栈特有) (3)括号匹配检验(粗略三种错误) (4)表达式求值算符优先法(仅限二元) 后缀表达式:可以不考虑优先级(逆波兰式) 前缀表达式:(波兰式) (5)迷宫求解:bfs(内含递归)+栈+队列(哈尔城堡&回溯可以用栈实现) typdef int Maze[10][10];Maze maze; 递归程序的非递归化(用栈模拟递归) 2、栈行编辑 二、队原创 2021-10-08 14:02:40 · 72 阅读 · 0 评论 -
第二章线性表
函数库的整理 一、顺序表不通用操作 注意:优化时间和空间复杂度,少用下标,多注意细节a[5]=*(a+5) 1、定位(函数指针做参数) (1)函数指针做参数:int Location_sp(SqList L,Status【返回值类型】(*compare)(int,int)【参数列表】,int) 调用函数指针不能加(),不然就是引用 int LocateElem(SqList L,Status (*compare)(int ,int),int E){ int *p; p=L.elem;原创 2021-09-27 20:31:06 · 83 阅读 · 1 评论