数据结构学习
文章平均质量分 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 · 428 阅读 · 0 评论 -
数据结构之图的创建及其遍历
简单的实现了一下,有向图,无向图的创建及其遍历。用邻接矩阵创建的是无向图,邻接矩阵创建的是有向图。具体实现如下:邻接表的实现,#define _CRT_SECURE_NO_WARNINGS#include#include#include#define Max_Szie 100typedef struct node{ int VerInfo,Priority; // 顶原创 2014-12-28 15:38:34 · 917 阅读 · 0 评论 -
二叉树的层次遍历
简单的实现了二叉树的层次遍历,用了图的广度优先搜索思想,具体实现如下:例子如下图:#include#include#include#define MaxSize 100typedef 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 · 380 阅读 · 0 评论 -
数据结构之二叉查找树的建立遍历删除
二叉查找树建立,遍历,查找元素很容易实现。我主要写写删除过程。二叉查找树结点的删除分几种情况:如果结点是一片树叶,那么直接删除即可。如果结点有一个儿子,则该节点可以在其父节点调整指针绕过该节点后被删除。如果结点有两个儿子,一般的删除方法是用其右子树的最小的数据代替该节点,并删除那个结点。因为最小的那个结点不可能有左儿子,所以第二次删除很容易实现。代码如下,写的不太好,见笑了#inc原创 2014-12-21 16:03:24 · 431 阅读 · 0 评论 -
二叉树之二叉搜索树
简单的实现了一下二叉搜索原创 2014-10-29 20:30:38 · 516 阅读 · 0 评论 -
链表应用之计算2^4000内数字0~9的分布
用了不少硬编码但很容易更改,代码如下:原创 2014-10-24 15:29:46 · 636 阅读 · 0 评论 -
栈的应用之简易逆波兰计算器
写的很简单用链表栈实现的原创 2014-10-23 22:00:35 · 486 阅读 · 0 评论 -
二叉树应用之哈夫曼编码(二叉链表实现)
哈夫曼树的定义:(直接百度贴过来)给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。具体实现定义一个结构体原创 2014-11-08 18:48:08 · 4095 阅读 · 3 评论