数据结构复习
分析各个章节重点以及重要代码
#Lorraine#
这个作者很懒,什么都没留下…
展开
-
【利用栈,判断给定的字符串是否是回文串】
已知树采用孩子-兄弟链存储,编写算法求树的高度int Height(CSTree bt) { //递归求以孩子链表表示树的深度 int hc, hs; if (bt = NULL) return 0; else//否则,高度取子女高度+1和兄弟子树高度的大者 { hc = Height(bt->firstchild);//第一子女树高 hs = Height(bt->nextsibling);//兄弟树高原创 2021-11-28 22:03:50 · 1303 阅读 · 0 评论 -
内部排序算法的优劣与稳定性分析
排序稳定性:在排序前后,关键字相同的元素的相对位置不发生改变。插入类排序1.直接插入排序:比较适用于待排序记录数目较少且基本有序的情况最好情况:待排序记录本身已按关键字有序排列,此时总的比较次数是n-1次,时间复杂度为O(n)最坏情况:待排序记录按关键字逆序排列,总的比较次数达到最大,总的移动次数也达到最大,时间复杂度为O(n2)平均情况:待排序记录是随机的,总的比较次数和总的移动次数均约为n2/4。因此,直接插入排序的时间复杂度为T(n)=O(n2),空间复杂度S(n)=O(1)直接插入排序是原创 2021-11-15 20:22:40 · 1021 阅读 · 0 评论 -
第四章------------------串
字符串是最基本的非数值数据,字符串是一种特定的线性表,其特殊性在于组成线性表的每个元素就是一个单字符。串的存储结构(1)定长顺序串:定长顺序存储表示:用一组地址连续的存储单元存储串值的字符序列#define MaxSize 255//预定义最大串长为255typedef struct { char ch[MaxSize];//每个分量存储一个字符 int length;//串的实际长度}SString;//串的实际长度只能小于等于MaxSize,超过预定义长度的串值会被舍去,称原创 2021-10-03 22:19:02 · 72 阅读 · 0 评论 -
栈和队列的应用
3.1栈在括号匹配中的应用用栈实现括号匹配:依次扫描所有字符,遇到左括号入栈,遇到右括号,则弹出栈顶元素,检查是否匹配。匹配失败情况有:(1)左括号单;(2)右括号单(3)左右括号不匹配int Match(char c1, char c2){ if ((c1 == '(' && c2 == ')') || (c1 == '[' && c2 == ']') || (c1 == '{' && c2 == '}')) return 1原创 2021-10-02 22:20:10 · 108 阅读 · 0 评论 -
第二章线性表
线性表的特点:(1)同一性,线性表由同类数据元素组成,每一个ai必须属于同一数据类型。(2)有穷性,由有限个数据元素组成,表长度就是表中数据元素的个数(3)有序性,线性表中相邻数据元素之间存在着序偶关系<ai,ai+1>存放线性表的两种基本存储结构:顺序存储结构和链式存储结构顺序表:表中元素的逻辑顺序与物理顺序相同,通常用数组来描述顺序表注:线性表中元素的位序从1开始,数组中元素的下标是从0开始的。静态分配:数组的大小和空间事先已经固定,一旦空间占满,再加入新的数据就会产生溢出,进原创 2021-09-29 20:56:29 · 147 阅读 · 0 评论 -
第三章另一种操作受限的线性表---------队列
队列一种操作受限的线性表,只允许在表的一端插入,而在表的另一端删除,特性:先进先出队头:允许删除的一端,又称队首。队尾:允许插入的一端.1.顺序存储结构:重点看循环队列:为了解决假溢出现象并使队列得到充分利用,将顺序队列想象成一个环状的空间,即把存储队列元素的表从逻辑上视为一个环,称为循环队列。在非空循环队列中,队头指针始终指向当前的队头元素,而队尾指针始终指向真正队尾元素后面的单元当队首指针Q.font=Q.MaxSize-1后,再前进一个位置就自动到0,这就可以利用除法取余运算来实现。初原创 2021-10-01 21:14:33 · 183 阅读 · 0 评论 -
第三章一种受限的线性表--------栈的表示与实现
栈1.栈是一种线性表,但限定这种线性表只能在某一端进行插入或删除的操作,栈的特性:后进先出。栈顶:允许进行插入和删除的那一端栈厎:固定的,不允许进行插入或删除的另一端。n个不同元素进栈,出栈元素不同排列的个数为1/(n+1)C2nn1.顺序栈typedef int ElemType;#define true 1#define false 0#define MaxSize 100//定义栈中元素的最大个数typedef struct { ElemType data[MaxSize]原创 2021-09-30 21:12:10 · 154 阅读 · 0 评论 -
数据结构第一章
一、数据结构三要素:逻辑结构、存储结构、数据的运算。1.数据:是信息的载体,是描述客观事物的数、字符以及所有能输入到计算机中并能被计算机识别并处理的符号的集合。数据元素:是数据的基本单位,可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位;例如数据记录就是一个数据元素,由姓名、性别、学号等数据项组成。数据对象:具有相同性质的数据元素的集合,是数据的一个子集。数据类型:原子类型(如bool)结构类型(struct{}) 抽象数据类型(ADT,可以构成一个完整的数据结构的定义如,如栈就是一种原创 2021-09-29 20:42:07 · 152 阅读 · 0 评论