(25)王道数据结构-串的存储结构存储结构顺序存储静态数组12345#define MAXLEN 255 //预定义最大串长为255typedef struct { char ch[MAXLEN];//每个分量存储一个字符 int length; //串的实际长度}SString; 动态数组12345678#define MAXLEN 255typedef struct { 2022-07-29 信工核心 #数据结构 #串 #顺序存储
(24)王道数据结构-串的定义和基本操作定义串,即字符串是由零个或多个字符组成的有限序列。一般记为:$$S=’a_1a_2…a_n’(n\geq 0)$$其中,S是串名,单引号括起来的字符序列是串的值:ai可以是字母、数字或其他字符;串中字符的个数n称为串的长度。n=0时的串称为空串(用∅表示)注: 有的地方用双引号(Java,C),有的地方用单引号(Python) 子串: 串中任意个连续的字符组成的子序列。主串: 包含子串的串字符在主 2022-07-29 信工核心 #数据结构 #串
(23)王道数据结构-栈在递归中应用函数调用函数调用的特点:最后被调用的函数最先执行结束(LIFO)函数调用时,需要用一个栈存储调用返回数据,实参,局部变量 递归案例适合用递归算法解决的,可以把原始问题转换为属性相同,但问题规模较小的问题。例如:阶乘、斐波那契数列 123456789101112131415#include<stdio.h>int factorial(int n);int main(void) { 2022-07-29 信工核心 #数据结构 #栈 #递归
(22)王道数据结构-栈在表达式求值中应用表达式中缀表达式运算符在两个操作数中间例如:a + ba + b - ca + b - c*d 后缀表达式运算符在两个操作数后面,最后出现的操作数先被运算,与栈十分吻合例如:ab +ab + c -ab + cd*- 前缀表达式运算符在两个操作数前面例如:+ab-+abc-+ab*cd 中缀转后缀计算方法①确定中缀表达式中各个运算符的运算顺序②选择下一个运算符,按照[左操作数 右操作数 运算符]的 2022-07-28 信工核心 #数据结构 #栈 #括号匹配 #逆波兰表达式
(21)王道数据结构-栈在括号匹配中的应用基本思想遇到左括号就入栈,遇到右括号,就“消耗”一个左括号。 扫描到右括号且栈空,右括号单身 处理完所有括号后,栈非空,左括号单身 实现代码1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697 2022-07-28 信工核心 #数据结构 #栈 #括号匹配
(20)王道数据结构-队列的链式实现带头结点12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485#include<stdio.h>#include< 2022-07-27 信工核心 #数据结构 #队列
(19)王道数据结构-队列的顺序实现普通队列12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576#include<stdio.h>#define MaxSize 10 //定义队列中元素最 2022-07-27 信工核心 #数据结构 #队列
(18)王道数据结构-队列的定义基本结构只允许在一端进行插入,在另一端删除的线性表,先进入队列的元素先出队 概念队头:允许删除的一端队尾:允许插入的一端 操作InitQueue(&Q): 初始化队列,构造一个空队列QDestroyQueue(&Q): 销毁队列,销毁并释放队列Q所占用的内存空间EnQueue(&Q, x): 入队,若队列Q未满,将x加入,使之成为新的队尾DeQueue(&Q, &a 2022-07-27 信工核心 #数据结构 #队列
(17)王道数据结构-栈的链式存储实现基本结构1234typedef struct Linknode { ElemenType data; //数据域 struct Linknode *next; //指针域} * LiStack; //栈类型定义 实现代码123456789101112131415161718192021222324252627282930 2022-07-27 信工核心 #数据结构 #栈 #链式存储
(16)王道数据结构-栈的顺序存储实现方式一:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778#include<stdio.h>#define MaxSize 10 // 2022-07-27 信工核心 #数据结构 #栈