数据结构学习
文章平均质量分 83
GadyPu
NEVER GIVE UP ON YOUR DREAMS!!!
展开
-
关于单链表一些简单的操作(增,删,查,改,排序)
第一次没看书把代码全部敲一遍,也算原创 2014-10-20 20:15:06 · 436 阅读 · 0 评论 -
数据结构之拓扑排序
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。 一个简单的求原创 2014-12-31 20:39:08 · 429 阅读 · 0 评论 -
数据结构之图的创建及其遍历
简单的实现了一下,有向图,无向图的创建及其遍历。 用邻接矩阵创建的是无向图,邻接矩阵创建的是有向图。 具体实现如下: 邻接表的实现, #define _CRT_SECURE_NO_WARNINGS #include #include #include #define Max_Szie 100 typedef struct node { int VerInfo,Priority; // 顶原创 2014-12-28 15:38:34 · 919 阅读 · 0 评论 -
二叉树的层次遍历
简单的实现了二叉树的层次遍历,用了图的广度优先搜索思想,具体实现如下: 例子如下图: #include #include #include #define MaxSize 100 typedef struct node { int data; struct node *lchild, *rchild; }BinTree,*BinNode; BinNode AddNewNode(int原创 2014-12-27 20:09:21 · 482 阅读 · 0 评论 -
数据结构之优先队列(二叉堆)
简单的实现了一下二叉堆的创建,初始化,以及取最大,最小元素(大根堆,小根堆)。 代码如下: #include #include #include #define father(i) ((i) >> 1) // 父节点 #define lchild(i) ((i) << 1) // 左结点 #define rchild(i) (((i) << 1) +1 ) // 右结点 #define Ma原创 2014-12-23 20:22:49 · 381 阅读 · 0 评论 -
数据结构之二叉查找树的建立遍历删除
二叉查找树建立,遍历,查找元素很容易实现。我主要写写删除过程。 二叉查找树结点的删除分几种情况: 如果结点是一片树叶,那么直接删除即可。如果结点有一个儿子,则该节点可以在其父节点调整指针绕过该节点后被删除。如果结点有两个儿子,一般的删除方法是用其右子树的最小的数据代替该节点,并删除那个结点。因为最小的那个结点不可能有左儿子,所以第二次删除很容易实现。 代码如下,写的不太好,见笑了 #inc原创 2014-12-21 16:03:24 · 432 阅读 · 0 评论 -
二叉树之二叉搜索树
简单的实现了一下二叉搜索原创 2014-10-29 20:30:38 · 517 阅读 · 0 评论 -
链表应用之计算2^4000内数字0~9的分布
用了不少硬编码但很容易更改,代码如下:原创 2014-10-24 15:29:46 · 637 阅读 · 0 评论 -
栈的应用之简易逆波兰计算器
写的很简单用链表栈实现的原创 2014-10-23 22:00:35 · 486 阅读 · 0 评论 -
二叉树应用之哈夫曼编码(二叉链表实现)
哈夫曼树的定义:(直接百度贴过来)给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小, 称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。哈夫曼树是带权路径长度最短的树, 权值较大的结点离根较近。具体实现定义一个结构体原创 2014-11-08 18:48:08 · 4098 阅读 · 3 评论