随笔分类 -  C++相关知识分享--数据结构

关与数据结构的C++知识分享
树的存储
摘要:树的存储有4种。 一、双亲表示法。 实现:定义顺序表存放树的节点,顺序表中的每个数据元素含两个域 1.数据域:存放节点信息。 2.双亲域:存放结点的双亲结点的位置。 二、孩子表示法。 实现:使用带头结点的单链表实现。 头节点:存放节点信息和第一个表结点的地址。 表结点:存放孩子节点的存储位置以及下一 阅读全文
posted @ 2020-03-12 19:47 eason66 阅读(548) 评论(0) 推荐(0)
树、森林与二叉树的转换
摘要:数转换成二叉树:使用孩子兄弟表示法。 二叉树转换成树:将二叉树的右孩子转换成兄弟。 森林转换成二叉树:将森林中的每一棵树都转换成二叉树,然后把森林中每个结点连起来,调整角度,使其成为二叉树形状。 二叉树转换成森林:将二叉树分成n个互不相交、没有右子树的二叉树,然后将每个二叉树都转换成树。 阅读全文
posted @ 2020-02-14 20:14 eason66 阅读(703) 评论(0) 推荐(0)
树的遍历
摘要:树的遍历有3种:先根遍历、中根遍历、后根遍历; 先根遍历:如果该二叉树为空树,则空操作,否则先访问根结点,再先根遍历左子树,最后先根遍历右子树。 1 //该二叉树用二叉链表存储,结点类型BiTreeNode 2 void pre_oder(BiTreeNode *root){ 3 if(root!= 阅读全文
posted @ 2020-02-14 14:02 eason66 阅读(836) 评论(0) 推荐(0)
单调队列
摘要:1.单调队列简介: 单调队列是一种数据结构,类似如单调栈,但里面的元素必须在一个区间内,如果“过时”就要出队。所以,单调队列可以在两端进行出队,但只能再队尾入队。按此性质,传统的队列已无法满足需求,需要使用双端队列,再C++的STL里,双端队列定义在deque里: #include <deque> 阅读全文
posted @ 2020-02-07 16:57 eason66 阅读(404) 评论(0) 推荐(0)
单调栈
摘要:1.单调栈简介 单调栈是一种数据结构,它里边存放的数据具有单调性,每个元素都只进栈一次,进栈时会把破坏栈的单调性的元素弹出。用代码表示就是: 1 stack <int> s;//单调栈,单调递增 2 int index;//要进栈的元素 3 while(!s.empty()&&s.top<index 阅读全文
posted @ 2020-02-07 14:16 eason66 阅读(595) 评论(0) 推荐(0)
float和double的区别
摘要:float和double都是C++中的浮点型数据类型,三者的区别是:1、精度是不同的。float类型是单精度浮点数,double类型是双精度浮点数。2、分配存储空间。c++编译器为flaot类型分配4字节,为double类型分配8字节。3、有效位的个数是不同的。float可以提供6位有效数字,dou 阅读全文
posted @ 2020-01-04 18:06 eason66 阅读(5150) 评论(0) 推荐(0)
读入字符串的方法
摘要:1.读入string 需包含头文件:iostream(iostream中包含string)。 #include <iostream> 方法: 1.读到空格、tab、回车中任意一个结束:直接cin。 string a; cin >> a; 2.读一行:getline。 string a; getlin 阅读全文
posted @ 2020-01-04 17:48 eason66 阅读(2488) 评论(2) 推荐(0)