数据结构
Sanjiye
这个作者很懒,什么都没留下…
展开
-
二叉树的创建,遍历,查找,查找父节点,深度,大小等的递归实现
在计算机科学中,二叉树(英语:Binary tree)是每个节点最多只有两个分支(不存在分支度大于2的节点)的树结构。通常分支被称作“左子树”和“右子树”。二叉树的分支具有左右次序,不能颠倒。 今天我们来实现一下二叉树的创建,三种遍历,以及查找等。 拿这个二叉树来说吧#ifndef _TREE_H#define _TREE_H#define ElemType chartypedef st原创 2017-06-18 18:38:03 · 5550 阅读 · 5 评论 -
栈应用于括号匹配
栈是一种先进后出的结构,它在程序设计中有很多的应用,今天咱们介绍一下栈应用于括号匹配的问题有一行括号序列输入数据是一个字符串S(S的长度小于100,且S不是空串),数据保证S中只含有”[“,”]”,”(“,”)”四种字符 如果字符串中所含的括号是配对的,则输出YES!,如果不配对则输出NO!分析: 首先咱们先将输入的字符串输入到一个字符数组中,然后依次入栈,若下一次输入的括号刚好能和栈顶的括号匹原创 2017-06-04 16:12:39 · 715 阅读 · 0 评论 -
队列的实现
队列,又称为伫列(queue),是先进先出(FIFO, First-In-First-Out)的线性表。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为rear)进行插入操作,在前端(称为front)进行删除操作。队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。 ———维基百科我们可以用队列完成很多的操作原创 2017-06-25 11:44:23 · 782 阅读 · 0 评论 -
二叉树的层次遍历
二叉树的层次遍历需要用到队列方面的知识,二叉树之前已经讲过一部分操作,这次主要讲二叉树的层次遍历 所谓的层次遍历即就是先从根结点开始遍历,然后以此根结点的下一级节点(默认从左往右遍历),直到完全遍历。 上图层次遍历的结果应当为A B G C D H E F ,下面咱们来看操作二叉树头文件#ifndef _TREE_H#define _TREE_H#define ElemType char原创 2017-06-25 15:37:51 · 3551 阅读 · 0 评论 -
赫夫曼树以及赫夫曼编码
1.概念赫夫曼树赫夫曼树,又称最优树,是一类带权路径长度最短的树。 首先给出路径和路径长度的概念。从树中一个节点到另一个节点之间的分支构成这两个节点之间的路径,路径上的分支数目叫做路径长度。树的路径长度是从树根到每一节点的路径长度之和。 考虑上带权的节点。节点的带权路径长度为从该结点到树根之间的路径长度与节点上权的乘积。树的带权路径长度为树中所有叶子节点的带权路径长度之和,通常记作WPL=∑nk原创 2017-07-14 23:20:09 · 839 阅读 · 1 评论