
数据结构
文章平均质量分 80
firefoxbug
这个作者很懒,什么都没留下…
展开
-
二叉树遍历--递归实现
递归这东西真是抽象,我看着看着算法,就囫囵吞枣地的写了下,写得囧了··· 这次先用递归实现先序,中序,后序遍历算法。先大概说下原理:我输入一大串字符,中间#就是代表了空,基本的储存结构就是二叉链表。主要就是二叉树的创建和三种顺序的遍历。二叉树的创建通过从左孩子开始创建不断递归,知道读取了#,开始创建对应的右孩子,继续递归。访问的时候对于三种顺序不过就是对于操作的顺序改变而已。原创 2011-11-15 16:44:29 · 1216 阅读 · 0 评论 -
二叉树按层次遍历--队列实现
最近数据结构看的还真是恶心额,脑子不好使,算法写不来额····· 二叉树一大堆概念性的东西,不过还是写吧。二叉树(binary tree)二叉树的基本形态 二叉树也是递归定义的,其结点有左右子树之分,逻辑上二叉树有五种基本形态: (1)空二叉树——(a); (2)只有一个根结点的二叉树——(b); (3)只有左子树——(c);原创 2011-11-12 21:55:18 · 21036 阅读 · 1 评论 -
链表逆置
算法一首先想到的肯定是创建一个新的空链表,然后把旧的链表中的元素通过指针p从头到尾遍历,每遍历一个,就把该元素从链表中脱离,添加到新的链表的头部,新建空链表的时候可以初始化一个空的无用节点(仅仅是为了操作方便)。算法二不通过新建一个新链表,具体是让第一个节点的指针域为NULL,第二个指针域指向第一个节点,第三个指向第二个~~~~~~L指向最后一个节点。下面是代码:原创 2012-01-17 00:46:47 · 893 阅读 · 0 评论 -
双栈
双栈意思就是双向栈,基本思想就是在一段内存里面,栈从两边分别向中间生长,这样可以提高内存的利用率。下面是C的实现代码,仅仅是基本的功能,重在于思想。#include #include #define INIT_STACK_SIZE 100typedef int ElemType;typedef struct DoubleStack{ ElemType *array; int t原创 2012-01-22 13:34:06 · 1669 阅读 · 0 评论 -
二叉排序树
二叉排序树(Binary Sort Tree)性质:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;#include #include typedef struct BinSortTree{ struct BinSortTree *lChi原创 2011-12-30 00:06:02 · 3927 阅读 · 2 评论