![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 85
ezLeo
真正的大师永远怀着一颗学徒的心
展开
-
拓扑排序的c语言实现
定义:拓扑排序是对有向无圈图的顶点的一种排序。 拓扑排序是对有依赖关系的事物进行排序,比如吃烤鴨,要先把烤鴨片成一片一片的,然後拿小餅,摸面醬,放蔥,放鴨肉,最後捲起來吃(--看得餓了有木有)必须要按步骤执行。 注意:这里得到的排序并不是唯一的!可以先放鴨肉,也可以先放蔥。 拓扑排序的方法就是遍历所有节点如果入度为0,就入队。如果队列不为空,则把第一个结点出队,继续此遍历的周边节点,原创 2015-08-27 20:09:16 · 3653 阅读 · 0 评论 -
二叉查找树的创建,查找,删除,插入的c描述
树大家应该都不陌生,树可以是很基础的ADT,比如我们今天要提到的二叉查找树喽。 二叉查找树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉排序树; (4)没有键值相等的节点。 说的直白一些,1.每一个节点都最多只有两个孩原创 2015-09-13 22:48:24 · 666 阅读 · 0 评论 -
浅谈8种基础排序
虽然之前看过一遍的排序,各种排序,简直爽到爆炸。这两天又听老师讲了一遍排序,而且有些排序代码敲了又敲。现在对排序有了新的一层记忆,于是趁着热乎尽就来一波排序吧!! 再写排序前,先说说排序大体上有两种,一种是通过一个数组中介存值到中介数组中,在把值取出来到原数组。这种排序的时间复杂度低一些,不过要消耗大量的空间。典型的排序有:计数排序(时间复杂度是O(n)),那么肯定有同鞋有疑惑了,既然都是这么少原创 2015-12-13 22:01:57 · 300 阅读 · 0 评论 -
单链表的实现
#include #include #include #define TRUE (1) #define FALSE (0) #define ZERO (0) #define ONLY_ONE (1) typedef unsigned char Boolean; typedef struct list{ struct node *head; struct原创 2015-11-22 23:58:36 · 635 阅读 · 2 评论 -
二叉树非递归的操作
继续来! 1.层序非递归 //把根节点先入队列,得到队首元素并且找到它的左右子树,把它们入队 //输出队首元素,并且出队。依次循环直到队列为空 void level_print(Tree root)//层序遍历 { Tree_node *node = root; Queue queue; if(root == NULL){ return ; }原创 2015-12-21 22:43:23 · 754 阅读 · 0 评论 -
关于单链表有哪些有趣的问题
在补习班上课2个多月了.今天上课老师讲了单链表的很多操作.由于之前一直是自学状态,涉猎单链表方面很少.所以听完感觉之前学习的真的是太少了,还需要好好努力去扩充自己的知识储备. 多题预警,与君共勉~~ 首先说一下单链表的结构吧,链表分为数据域和指针域.指针域存放的是下一个结构体的指针. 也可以设置一个带有控制信息的链表,控制信息的链表除了含有普通的数据域和指针域除外,还含有一个另外的结构体,这原创 2015-11-22 22:40:43 · 759 阅读 · 0 评论 -
avl树的c实现
一.简介:一看到AVL树,首先联想到岛国动作片有木有,不过AVL树是得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis。 AVL树其实是平衡二叉树的限定版, 二.性质 (1).不仅仅具有平衡二叉树的所有性质(注:平衡二叉树性质:左节点的值 (2).每个节点左右子树高度的差最多为1。这是什么意思呢?给个例子大家就明白了 如:原创 2015-10-15 21:48:53 · 777 阅读 · 0 评论 -
最小生成树--prim算法的c语言描述
普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。 算法的描述: 1).输入:一个加权连通图,其中顶点集合为V,边集合为E; 2).初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew原创 2015-09-25 18:37:53 · 1030 阅读 · 0 评论 -
c语言描述之广度优先搜索——无权最短路径
广度优先搜索(bfs)是图遍历的一种方式,广度优先搜索的方法是从一个初始点v1开始,依次遍历所有与v1相邻且没有被标记的所有顶点,之后通过把相邻的顶点(v2,v3,v4)作为下一条边开始的顶点。循环遍历,直至所有节点都被遍历为止。 广度优先搜索很像是树的层序遍历。 #ifndef _adja_h #define _adja_h struct Node; typedef struct原创 2015-09-04 16:38:52 · 1720 阅读 · 0 评论 -
二叉树的操作
二叉树是最多有两个孩子节点的类型的树 二叉树的思想延伸有很多,最经典的就是二分查找了,还有就是用决策树来判断比较排序的最优时间复杂度。等等。我就把不一一列举了(囧~当然也列举不完)。 今天用了将近半天的时间把二叉树的很多操作都实现了一下。有些非递归的真的是不好做,也不是很好想,开始做前序非递归我绞尽脑汁~~想了很久也没有想出来,后来大多都是听老师或者百度后才知道原来是这么写的。其实非递归写的真原创 2015-12-21 22:00:34 · 464 阅读 · 0 评论