基础数据结构
文章平均质量分 76
Dread_naught
2013-2017 本科 武汉大学 软件工程
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
卡特兰数初探
我第一次知道卡特兰数是在这样一道题中: Supposethe coming sequence into a stack is: 1,2,3,4……n . Writea function to print all the possibilities of output sequence. 我是用最笨的深搜dfs来做的。代码如下:原创 2014-11-10 14:33:57 · 664 阅读 · 0 评论 -
二叉树的建立和深度优先遍历
一、二叉树的ADT首先我们定义二叉树的结点Nodestruct Node{ int data; Node* left; Node* right; Node(int _data):data(_data),left(0),right(0){} bool isLeaf() {return left==NULL && right==NULL;}};然后我们定义二叉树的抽象类型原创 2014-11-19 09:23:51 · 804 阅读 · 0 评论 -
中序线索二叉树
线索二叉树主要是为了解决查找结点的线性前驱与后继不方便的难题。它只增加了两个标志性域,就可以充分利用没有左或右孩子的结点的左右孩子的存储空间来存放该结点的线性前驱结点与线性后继结点。两个标志性域所占用的空间是极少的,所有充分利用了二叉链表中空闲存的储空间。 要实现线索二叉树,就必须定义二叉链表结点数据结构如下(定义请看代码):leftleftTa原创 2014-12-07 10:40:09 · 2703 阅读 · 0 评论 -
链表和归并排序(Merge Sort)
归并排序适合于对链表进行原址排序,即只改变指针的连接方式,不交换链表结点的内容。 归并排序的基本思想是分治法:先把一个链表分割成只有一个节点的链表,然后按照一定顺序、自底向上合并相邻的两个链表。 只要保证各种大小的子链表是有序的,那么最后返回的链表就一定是有序的. 归并排序分为分割和合并两个子过程。分割是用递归的方法,把链表对半分割成两个子链表;合并是在递归返回(回朔)的时候,把两个有序链表原创 2014-12-12 11:01:27 · 5596 阅读 · 1 评论 -
快速排序的递归和非递归算法
#include #include #include #include using namespace std;void quicksort(int* a, int from, int to);void quicksort(int* a, int length);void quicksort_nonrecursive(int* a, int from, int to);int pa原创 2014-12-15 15:06:21 · 818 阅读 · 1 评论
分享