
数据结构与算法
加油196
这个作者很懒,什么都没留下…
展开
-
栈,队列
线性表的插入和删除只能在一端进行,这种线性表即为栈,允许插入删除的一端为栈顶。(栈是先进后出)栈的生成方式:向下生成的栈。栈顶在高地址端(下方)。 入栈为top++,出栈为top-- ;向上生成的栈。栈顶在低地址端(上方)。入栈为top--,出栈为top++;栈顶指针有两种指示方式:栈顶指针指向空单元 ;栈顶指针指向最后写入的元素。根据栈顶指针的指示方式不同,入栈和出栈原创 2017-10-30 15:27:01 · 404 阅读 · 0 评论 -
二叉树的性质
结点的度:结点的子树棵数。(二叉树中任意节点的度不大于2)。叶结点:度为0的结点,或者称为终端节点。分支结点:二叉树度不为0的结点,即二叉树中除了叶结点的所有结点。树的深度:二叉树中所有结点的最大层号称为树的深度或者二叉树的高度。满二叉树:所有的分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上,则该二叉树称为满二叉树。完全二叉树:对二叉树从上到下,从左原创 2017-10-31 21:13:28 · 3193 阅读 · 0 评论 -
串的匹配算法:BF以及KMP
串的模式匹配,即在给定主串S中找到等于子串T的过程称为模式匹配。T称为模式。串的匹配算法有两种:简单匹配算法和KMP匹配算法。原创 2017-10-31 10:56:24 · 403 阅读 · 0 评论 -
中缀表达式算法实现&中缀表达式转后缀表达式
中缀表达式,即运算符在操作数中间。计算中缀表达式时,逐个扫描表达式。扫描时存入两个栈,操作数栈,和运算符栈。例如 3*2^(4+2*2-1*3)-5 扫描表达式。操作数栈以 栈$表示,运算符栈以 栈¥表示。扫描开始:栈$进3 ,栈¥进* , 栈$进2 ,栈¥进^ ,栈¥进(,栈$进4 , 栈¥进+ , 栈 $进2 , 栈¥进* 接下来由于 - 减号运算符优原创 2017-10-30 20:05:54 · 611 阅读 · 0 评论 -
二叉树的存储结构及遍历算法
二叉树的顺序存储:用一块连续的空间存储二叉树的节点,存储的顺序按从上到下,从左至右的顺序。顺序存储一般适合存储 : 满二叉树和完全二叉树。 对于一般二叉树,如果用顺序存储,且需要反映出一定的逻辑关系(即能用数组元素下标值反映元素在二叉树中的位置),此时可能会需要定义一些虚结点。即存储时,存储虚结点的空间即存储0值。(弊端是浪费了太多空间)所以,对于一般二叉树不适合用顺序存储结构。原创 2017-10-31 21:18:26 · 1032 阅读 · 0 评论 -
C++中的IO流
iostream 四种流对象: cin 标准输入流对象 cout 标准输出流对象 cerr 标准错误流对象 clog 标准错误流对象clog与cerr均是在显示器上显示出错信息,区别是cerr是不经过缓冲区,直接向显示器上输出有关信息,而clog中的信息存放在缓冲区中,缓冲区满后或遇endl时向显示器输出。cout 对象遇到endl时会立即取出缓冲区的数据,加上一个换行符...原创 2018-02-02 22:43:45 · 260 阅读 · 0 评论