随笔分类 -  数据结构大整理

2021-2-4,决定考研了,复习一下数据结构
摘要:#include <iostream> #include <iterator> using namespace std; /** * 无线循环队列,可扩容(内部自动扩容) * 实现迭代器访问循环队列 * @tparam T */ template<class T> class queue{ publ 阅读全文
posted @ 2022-08-13 15:01 nanfengnan 阅读(65) 评论(0) 推荐(0) 编辑
摘要:#include <stdio.h> #include <stdlib.h> /* * 给出RNL,RLN,NRL是为了,有更多解决问题的方法 */ typedef struct node { char data; struct node *lchild,*rchild; }*BitTree,Bit 阅读全文
posted @ 2021-03-31 17:48 nanfengnan 阅读(113) 评论(0) 推荐(0) 编辑
摘要:#include <stdio.h> #include <stdlib.h> /* * 给出RNL,RLN,NRL是为了,有更多解决问题的方法 */ typedef struct node { char data; struct node *lchild,*rchild; }*BitTree,Bit 阅读全文
posted @ 2021-03-31 17:30 nanfengnan 阅读(69) 评论(0) 推荐(0) 编辑
摘要:#include <stdio.h> #include <stdlib.h> #define MaxSize /* * 这里是不带头结点的线索二叉树,带头结点的以后再写 * 线索二叉树: * 把树型逻辑结构变成线性逻辑结构,可以顺序访问二叉树中的元素,用来加速查找前驱和后继 * pay attent 阅读全文
posted @ 2021-03-28 23:21 nanfengnan 阅读(522) 评论(0) 推荐(0) 编辑
摘要:1.二叉树层次遍历的原理 算法思想: 利用队列实现的,因为层次遍历的序列正好符合队列的特性,先进先出,所以用队列这个工具实现二叉树的层次遍历 但pay attention to 这里我用的是循环队列,因我害怕队列溢出,导致内存泄漏的不规范行 2.代码如下 #include<iostream> #in 阅读全文
posted @ 2021-03-16 18:02 nanfengnan 阅读(88) 评论(0) 推荐(0) 编辑
摘要:1..中序遍历的非递归算法算法思想 >利用栈来代替递归遍历 1.初始时依次扫描根节点及根节点的左侧结点,并将一一入栈,如果结点不存在,结束入栈2.(当结点不存在时),出栈一个结点,访问它(可以是输出结点的数据域的值)3.扫描该结点的右孩子结点,并将其入栈4.依次扫描该右孩子的所有左侧结点,并将一一入 阅读全文
posted @ 2021-03-15 19:19 nanfengnan 阅读(2142) 评论(0) 推荐(1) 编辑
摘要:#include<stdio.h> #include<stdlib.h> typedef char ElemType; //结点定义 typedef struct node{ ElemType data; struct node* lchild,*rchild; }BiTNode,*BiTree; 阅读全文
posted @ 2021-03-15 18:30 nanfengnan 阅读(49) 评论(0) 推荐(0) 编辑
摘要://共享栈的实现 -- 是一个顺序栈 /* * c++实现,面向过程 * date:2021-03-08 * auther:nanfengnan * 共享栈的定义:栈底定义在顺序栈的两端,两个栈顶向两方延伸 * 方法: * 初始化一个空栈 * 入栈 * 出栈 * 判断栈空 * 得到栈顶元素 * 销毁 阅读全文
posted @ 2021-03-08 16:44 nanfengnan 阅读(306) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> #include<stdlib.h> using namespace std; typedef int DataType; typedef struct node{ //队列的链式结点 DataType data; struct node *next; }Lin 阅读全文
posted @ 2021-02-15 08:13 nanfengnan 阅读(68) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> #include<vector> using namespace std; typedef int DataType; #define MaxSize 50 typedef struct { //循环队列的存储结构 DataType data[MaxSize]; 阅读全文
posted @ 2021-02-14 21:11 nanfengnan 阅读(31) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #define MaxSize 50 using namespace std; typedef int DataType; //队列的顺序存储结构 typedef struct{ DataType data[MaxSize]; //存放队列中的数据元素 int 阅读全文
posted @ 2021-02-14 16:42 nanfengnan 阅读(45) 评论(0) 推荐(0) 编辑
摘要:#include<iostream> #define MaxSize 50 typedef int DataType; using namespace std; //栈的数据结构 //顺序栈 /* 数据运算: 1.初始化一个空栈:初始指针 1 2.数据元素入栈:如果栈没满,数据元素入栈 3.数据元素 阅读全文
posted @ 2021-02-14 15:53 nanfengnan 阅读(20) 评论(0) 推荐(0) 编辑
摘要:1.我们默认一般使用带头结点的单链表 head-next=NULL;初始状态 2.头结点的数据域不赋值 头节点只有指针域有值 3.带头结点的好处,就是在插入和删除,求表长等时不需要判断是不是空表,因为带头结点head了,就一定不是空表4.单链表和循环链表的区别 单链表的结尾指向NULL,循环链表的结 阅读全文
posted @ 2021-02-05 16:50 nanfengnan 阅读(166) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #include <stdlib.h> using namespace std; typedef int DataType; //使int重命名为DataType DataType flag = 0; //flag是用来判断神魔时候输入数据结束 typedef 阅读全文
posted @ 2021-02-05 16:44 nanfengnan 阅读(87) 评论(0) 推荐(0) 编辑
摘要:单链表的创建方法:头插法和尾插法 单链表创建建议带头节点,因为能减少麻烦 按照是否带头节点又分为:带头结点的头插法,尾插法和不带头结点的头插法,尾插法 1.单链表的结构定义 typedef int DataType; //给int数据类型起一个别名,叫DataType typedef struct 阅读全文
posted @ 2021-02-05 10:01 nanfengnan 阅读(107) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #define MAXSIZE 100 using namespace std; typedef int DataType; //使int重命名为DataType typedef struct{ DataType data[MAXSIZE]; //定义Data 阅读全文
posted @ 2021-02-04 12:34 nanfengnan 阅读(92) 评论(0) 推荐(0) 编辑
摘要:线性表复习: 1.线性表定义:线性表是由n(n>=0)个具有相同数据类型的的数据元素构成的有限序列 常记为: A=(a1,a2,a3,...,an) 其中: A是线性表名,n为线性表长度 2.线性表有两种存储方式:顺序存储和链式存储 3.线性表分为:顺序表和链式表 写算法时,先写逻辑结构要使用的数据 阅读全文
posted @ 2021-02-04 11:55 nanfengnan 阅读(96) 评论(0) 推荐(0) 编辑
摘要:基础知识: 1.数据(Data),数据元素(DataElement),数据项(初等项,组合项),数据结构(Data_Structure)的定义 数据:是信息的载体。能被计算机识别,存储和加工。分为数值型数据(整数,浮点数,复数等)和非数值型数据(图片,图像,视频,文字,字符等) 数据元素:是数据的基 阅读全文
posted @ 2021-02-04 11:45 nanfengnan 阅读(34) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示