![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
xlf13872135090
这个作者很懒,什么都没留下…
展开
-
链表、头指针、头结点
图1为线性表(ZHAO, QIAN, SUN, LI, ZHOU, WU, ZHENG, WANG)的逻辑状态。头指针 指示链表中第一个结点(即第一个数据元素的存储映像)的存储位置。同时,由于最后一个数据元素没有直接后继,则线性链表中最后一个结点的指针为“空”(NULL)。图1 线性链表的逻辑状态由上述描述可见,单链表可由头指针来唯一确定,在C语言中可用“结构指针”来描述。转载 2013-04-27 09:51:04 · 927 阅读 · 0 评论 -
C++ 单链表后插法建立 求长度 打印
#include #include using namespace std;typedef struct student{ int data; struct student *next;}node;node *creat(){ node *head, *p, *s; int x, cycle = 1;原创 2013-04-27 10:30:21 · 1513 阅读 · 0 评论 -
不相交集的find和union
两个不相交集合是指S1 ∩ S2 == {}空集,一般包含两个操作,find和union操作find:返回包含给定元素的集合union把两个集合合并成一个集合这里只用到了数组来表示这个数据结构,这个数组中保存着每个元素的等价类的名字#include #include using namespace std;class DisjSets{public: explicit原创 2013-12-24 17:02:37 · 1361 阅读 · 0 评论 -
算法导论 第23章 KrusKal算法 Prim算法
终于写出来了 ,这个算法的准备工作也忒多了,先打好图的结构的基础,然后写一个实现不相交集合的数据结构,然后结合这两个结构完成这个算法。写了两天,终于把这些都解决了,今天终于出来成果了,好激动,好\(≧▽≦)/,忍不住欢呼雀跃,功夫都没白费,不枉费我这星期六日还在写,嘿嘿~~~~~图的最小生成树算法:思路很简单,1、最开始时,每个结点都看成一棵树,使每个结点都成为一个集合原创 2013-12-29 16:37:32 · 1741 阅读 · 0 评论 -
算法导论第24章 单源最短路径
本章中有三个最短路径算法1、Bellman-Ford算法:解决的是一班情况下的单源最短路径问题,可适用于边的权重为负值,且有环路的情况,算法返回一个bool值,表明是否存在一个从源结点可以到达的权重为负值的环路。如果存在,则返回false,否则,可以求出最短路径和这条路径的权重。2、Dag_Shortest_Paths: 解决有向无环图的单源最短路径问题,算法根据结点的拓扑排序对带权重的原创 2014-01-06 22:07:26 · 3714 阅读 · 0 评论 -
图的表示方法 c++ 实现
图的表示最长用的两种方法是:1)、邻接矩阵表示法2)、邻接表表示下面是两种构造图的方法1)邻接矩阵:2)邻接链表#include using namespace std;//枚举类型,图的种类 DG:有向图;WDG:带权值的有向图;//UDG: 无向图;WUDG: 带权值的无向图enum GraphKind {DG, WDG, UDG, WUDG};t原创 2013-12-26 14:23:14 · 13385 阅读 · 0 评论 -
图的拓扑排序
拓扑排序:找出任意一个没有入边的顶点,显示出来,并将它和它的边原创 2014-07-21 10:22:40 · 620 阅读 · 0 评论 -
中缀转后缀,后缀求值,后缀构造表达式树
这三种算法都借助栈,中缀转后缀是符号入栈,其他是数值原创 2014-07-24 20:12:11 · 758 阅读 · 0 评论 -
二叉树常见问题
二叉树的问题 1.二叉树三种周游(traversal)方式: 2.怎样从顶部开始逐层打印二叉树结点数据 3.如何判断一棵二叉树是否是平衡二叉树 4.设计一个算法,找出二叉树上任意两个节点的最近共同父结点,复杂度如果是O(n2)则不得 分。 5.如何不用递归实现二叉树的前序/后序/中序遍历? 6.在二叉树中找出和为某一值的所有路径 7.怎样编写一个程序,把一个有序整数数组放到二叉原创 2014-07-08 11:39:32 · 569 阅读 · 0 评论