- 博客(20)
- 收藏
- 关注
原创 集合的表示、并查集的数组存储方式和集合的差并运算
typedef struct{ ElementType Data; int Parent; }SetType;SetType S[]; int Find(SetType S[],ElementType X)//查找某个元素所在的集合(用根结点表示) {//在数组S中查找值为X的元素所属的集合 //MaxSize是全局变量,为数组S的最大长度 int i; for(i=0;i<M
2017-02-28 12:43:13 529
原创 哈弗曼树的构造、什么是哈弗曼编码和怎样构造一颗编码代价最小又无二义的二叉树--用哈弗曼树
typedef struct TreeNode *HuffmanTree;struct TreeNode{ int Weight; HuffmanTree Left,Right;}; typedef struct HeapStruct *MinHeap; //最小堆的创建 struct HeapStruct{ ElementType *Elements;//存储堆元素的数组 in
2017-02-20 16:22:54 564
原创 什么是哈弗曼树
【例】将百分制的考试转换成五分制的成绩 if(score<60) grade=1;//判定树 else if(score<70) grade=2; else if(score<80) grade=3; else if(score<90) grade=4; else grade=5; if(score<80)//修改过的判定树 { if(score<70) if(s
2017-02-20 09:32:25 389 1
原创 最大堆的插入和删除
typedef struct HeapStruct *MaxHeap; //最大堆的创建 struct HeapStruct{ ElementType *Elements;//存储堆元素的数组 int Size;//堆的当前元素个数 int Capacity;//堆的最大容量 };MaxHeap Create(int MaxSize){//创建容量为MaxSize的空的最大堆
2017-02-17 21:15:35 1046
原创 单链表的逆转
typedef struct LNode *Ptr; struct LNode{ElementType Data;List Next;};Ptr head,new,old,tmp;Ptr Reverse(Ptr head,int K)//链表的逆转伪代码 { cnt=1; new=head->Next; old=new->Next; while(cnt<K){ tmp
2017-02-16 01:51:48 392
原创 判别是否是同一课二叉搜索树
typedef struct TreeNode *Tree; //搜索树表示 struct TreeNode{ int v; Tree Left,Right; int flag; }; int main(){ int N,L,i; Tree T; scanf("%d",&N); while(N){ scanf("%d",&L); T=MakeTree(
2017-02-13 23:59:23 255
原创 二叉搜索树的插入和删除
typedef struct TreeNode *BinTree; typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BST; BinTree Insert(ElementType X,B
2017-02-13 04:08:09 374
原创 什么是二叉搜索树、二叉搜索树的查找(递归或循环)和二叉搜索树的查找最大最小元素
typedef struct TreeNode *BinTree; typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BST; Position Find(ElementType X,Bi
2017-02-13 03:58:35 1190
原创 如何判断两颗二叉树同构
#define MaxTree 10#define ElementType char#define Tree int#define Null -1struct TreeNode{ElementType Element; Tree Left;Tree Right; }T1[MaxTree],T2[MaxTree],T[MaxTree];int main(){
2017-02-12 02:03:10 5003 1
原创 二叉树的应用问题
【例】遍历二叉树的应用:输出二叉树中的叶子结点。void PreOrderPrintLeaves(BinTree BT)//例如先序遍历来判断左右子树是否都为空 {if(BT){if(!BT->Left&&!BT->Right)//增加检测结点 printf("%d",BT->Data);PreOrderPrintLeaves(BT->Left);PreOrde
2017-02-10 13:31:22 553
原创 二叉树的层序遍历
typedef struct TreeNode *BinTree;typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BT;void LevelOrderTraversal( BinTree BT )//二叉树的层序遍历,用队列方法,
2017-02-10 13:03:32 257
原创 二叉树的中序、先序、后序遍历非递归遍历算法(使用堆栈,用循环实现)
typedef struct TreeNode *BinTree;typedef BinTree Position; struct TreeNode{ElementType Data;BinTree Left;BinTree Right; }; BinTree BT;void InOrderTraversal(BinTree BT)//中序遍历非递归遍历算法
2017-02-10 13:01:58 678
原创 二叉树的先序、中序、后序遍历
typedef struct TreeNode *BinTree;typedef BinTree Position; struct TreeNode{ ElementType Data; BinTree Left; BinTree Right; }; BinTree BT;//二叉树的遍历 void PreOrderTraversal(BinTree BT)//(1)先序遍历
2017-02-05 04:03:42 237
原创 二叉树的存储结构
typedef struct TreeNode *BinTree;typedef BinTree Position; struct TreeNode{ElementType Data;BinTree Left;BinTree Right; };BinTree BT;
2017-02-05 04:01:50 170
原创 数据管理基本操作-查找
typedef struct LNode *List;struct LNode{ElementType Element[MAXSIZE];int Length; }; 方法1:顺序查找算法int SequentialSearch(List Tb1,ElementType K)//(有"哨兵"){//在Element[1]~Element[n]中查找关键字为K的数据元素
2017-02-04 04:08:09 190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人