![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法和数据结构
文章平均质量分 52
whuslei
这个作者很懒,什么都没留下…
展开
-
二叉查找树
最近看《算法导论》,发现里面短短几页篇幅却包含着很多内容。要完全理解它可以试试不看书自己总结出来。如果可以不看书写出来才算真的"吃进去"了,否则都不算掌握了。大家可以检测下!借这篇文章来稍微总结下,便于以后查阅。 下面说说二叉查找树( Binary search tree)。 1、二叉查找树和二叉堆的区别(前者简称 bstree ,后者简称 heap) 区别一:性质不同。heap(此处默认说原创 2012-02-19 17:50:24 · 2429 阅读 · 1 评论 -
数据结构(栈)
栈,也是一种表结构,特点是先进后出。实现方式也有两种:数组和链表。本文主要是复习,老鸟跳过!具体主要包括以下操作: Stack CreateStack(void); int IsEmpty(Stack s); //int IsFull(Stack s);//链式stack可以不断申请space void MakeEmpty(Stack s);原创 2011-04-04 23:18:00 · 909 阅读 · 0 评论 -
二叉查找树(续)
题记 之前对二叉查找树的基本操作写了一篇文章《二叉查找树》,觉得还不过瘾。毕竟还没有实践。所以找了几个笔试题做做。小结如下: 经典题1: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 比如,二叉查找树的结构为 10 / \原创 2012-02-22 21:37:46 · 738 阅读 · 0 评论 -
数据结构(队列)
一、队列的循环数组实现。 1、初始化 空队列。 令rear=front=0。 2、入队列 约定rear指向队列尾元素的下一个位置。入队列时,先判断队列是否已满,而后将Array[rear]=x;然后rear++。 3、出队列 约定front指向队列的首元素位置。出队列时,先判断队列是否为空,而后返回队首元素re=Array[front];然后fro原创 2011-04-07 11:05:00 · 1376 阅读 · 0 评论 -
二叉树非递归遍历
题记 二叉树的递归遍历比较简单,这里就不说了。二叉树非递归的实现要依赖栈,其中,后序遍历的非递归实现稍微复杂些。这里总结下,便于理解。 好了,不多说了,直接上代码,思路都在注释里。 代码部分: #include #include #define MAXSIZE 30 typedef struct BSTreeNode{ int m_value; struct BSTreeNode原创 2012-02-23 17:10:06 · 1098 阅读 · 1 评论 -
关于伪代码
《算法导论》中的伪码可以让我们更加关注算法本身而不是实现,是一种很优美的表达方式,比直接看代码要更直接,所以我自己也要慢慢学着写伪码。今天看到一个用递归实现的伪码,自己却不知不觉用C语言的实现去想,居然忘了那只是伪码,汗!在这里记上一笔,防止以后再犯类似的错误! 原版例子是关于递归实现二叉查找树的插入,现简化为递归插入元素到单链表。 伪代码如下: insert(L,k) if L原创 2012-02-16 17:17:45 · 6260 阅读 · 0 评论