
数据结构
张小烁
一个热爱技术的小丑男
展开
-
c语言原生实现二叉树的 非递归 中序 先序 后序 遍历
// BTree_goThrough.cpp : 定义控制台应用程序的入口点。///*知识储备:1.内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置原创 2017-08-21 00:00:36 · 499 阅读 · 0 评论 -
由先序和中序遍历序列建立二叉树
voidPreInOrd( char preord[],char inord[],int i, int j, int k, int h, BiTree t){ /* 先序序列中从i到j,中序从序列从k到h,建立一棵二叉树放在t中 i j为 preord[]的下标 k h 为inord[]的下标*/ int m; (*t)=new BiNode; (*t)->data=preord[i];原创 2017-08-21 00:27:28 · 803 阅读 · 0 评论 -
c原生实现二叉树的构建和 非递归遍历二叉树的方法
// BTree_goThrough.cpp : 定义控制台应用程序的入口点。///*知识储备:1.内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置原创 2017-08-21 00:29:41 · 344 阅读 · 0 评论 -
c语言实现大顶堆排序算法
// HeapSort.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<stdio.h>#include <stdlib.h>void HeapAjust(int array[], int i,int len)//调整{ //知识储备 长度为length的二叉树 最后一个非叶节点的下标(从零开始) 为 length/2-1原创 2017-08-21 10:57:59 · 1246 阅读 · 0 评论 -
红黑树添加删除操作c语言示例代码
RBTree.h#pragma oncetypedef struct RBTreeNode//红黑树节点结构体{ int data; char color; RBTreeNode * parent; RBTreeNode * lchild; RBTreeNode * rchild;}RBTreeNode, *RBTreeNodeP;typedef st原创 2017-08-30 16:31:36 · 919 阅读 · 0 评论 -
Dijkstra 算法 c语言原生实现
// Dijkstra.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include<limits.h>void Dijkstra(int n, int v, int distance[], int previous[], int **G)//distance 为起点到这个点的最短原创 2017-09-10 23:33:33 · 674 阅读 · 0 评论 -
c语言构建HuffmanTree
// HuffTree.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <limits.h>#include <stdio.h>#include <stdlib.h>#include<string.h>typedef struct HuffTreeNode { unsigned int weight;//权重 int lc原创 2017-09-02 09:22:38 · 735 阅读 · 0 评论 -
kruskal 克鲁斯卡尔 With Prim 普里姆 最小生成树算法
// Kruskal.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include<limits.h>#define VEX 7#define EDGE 11typedef struct{ int arc[VEX][VEX]; //二维数组里面存储的是边的权重原创 2017-09-03 01:29:17 · 442 阅读 · 0 评论