数据结构
天涯追梦_
这个作者很懒,什么都没留下…
展开
-
八皇后问题 回溯法
#include#include//--------------回溯法解决八皇后问题P151----------////首先判断棋盘上是否已经得到一个完整的布局(即棋盘上是否已经摆放了8个棋子),若是,则输出该布局;//否则,一次先根遍历满足约束条件的各个子树。int total; //不能声明为static,不然对于其他的文件不可见void Trial(int i,int原创 2014-04-14 12:01:28 · 812 阅读 · 0 评论 -
二叉树
满二叉树:一棵深度为k且有2^k-1个结点的二叉树称为满二叉树。完全二叉树:深度为k的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时,称之为完全二叉树。二叉树的性质:1.在二叉树第i层上至多有2^i-1个结点。2.深度为K的二叉树至多有(2^k)-1个结点,(k>=1)。3.对于任何一颗二叉树T,如果叶原创 2014-04-14 13:35:25 · 761 阅读 · 0 评论 -
赫夫曼编码
霍夫曼算法对于给出的一组权w={5,6,8,12},通过霍夫曼算法求出的扩充二叉树的带权外部路径为——?1.有关霍夫曼树的相关概念霍夫曼树:指所有叶子结点的二叉树中带权路径长度最小的二叉树。节点的带权路径长度:从树的根节点到该节点的路径长度与该节点权的乘积。树的带权路径长度:树中所有叶子结点的带权路径长度之和。2.霍夫曼算法(1)根据给定的n个权值{原创 2014-04-14 13:50:12 · 1044 阅读 · 0 评论 -
线性表顺序实现
#include "global.h"#define LIST_INIT_SIZE 100 //线性表存储空间的初始化分配量#define LIST_INCREMENT 10 //线性表存储空间的分配增量struct SqList { ElemType *elem; //存储空间基址 int lenth原创 2014-04-03 13:26:08 · 651 阅读 · 0 评论 -
栈 (顺序栈)的实现
//顺序栈#include "global.h"#define STACK_INIT_SIZE 100;#define STACKINCRENMENT 10;typedef struct SqStack{ //相当于表头。 数据区是从base到pop; 存储空间从base到base+stacksize ElemType *base;原创 2014-04-03 13:20:24 · 780 阅读 · 0 评论 -
链式队列实现
#include "global.h"typedef struct QNode{ ElemType data; struct QNode *next;}*QueuePtr;typedef struct{ QueuePtr front; QueuePtr rear;}LinkQueue;原创 2014-04-03 13:16:07 · 638 阅读 · 0 评论 -
栈和队列
从数据结构角度看,栈和队列也是线性表,其特征性在于栈和队列的基本操作是线性表操作的子集。栈: 【LIFO】后进先出队列:【FIfO】先进先出和线性表类似,栈也有两种存储方式,顺序栈和链式栈顺序栈:一般来说,在初始化空栈时不应该限定栈的最大容量。 应该先为栈分配一个基本容量,然后在应用过程中,当栈的空间不够使用时再逐步扩原创 2014-04-03 13:22:16 · 767 阅读 · 0 评论 -
线性表链式 实现
#include "global.h"typedef struct LNode{ ElemType data; struct LNode *next;}LNode,* LinkList;Status GetElem_L(LNode L,int i, ElemType &e ) //L为带头结点的单链表的头指原创 2014-04-03 13:24:43 · 857 阅读 · 0 评论 -
图的深度优先搜索 递归和非递归实现 c++版本
本文参考了李春葆版本的数据结构上机指导,但是原版是c代码,本文用了c++实现,并且修复了深度优先搜索非递归的一个bug。graph.cpp文件:#include"graph.h"#include#includeint visited[MAXV];MGraph::MGraph(int A[100][10],int nn,int ee){e=ee;n=nn;原创 2014-06-18 16:50:28 · 3981 阅读 · 0 评论