随笔分类 - 数据结构与算法
摘要:1 #include 2 3 int main() 4 { 5 int n,i , j, a[100], a1[100]; 6 while(scanf("%d", &n) == 1) 7 { 8 for(i = 0; i0; i--)14 ...
阅读全文
摘要:赫夫曼编码 1 //构造赫夫曼树 实现赫夫曼编码 2 3 #include 4 #include 5 #define MAX 10 6 #define MAXW 1000 7 8 typedef struct HNODE //定义 赫夫曼树的节点结构 9 { ...
阅读全文
摘要:平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删除一个节点使得高度之差大于1,就要进行节点之间的旋转,将二叉树重新维持在一个平衡状态。这个方案很好的解决了二叉查找树退化成链表的问题,把插入,查找,删除的时间复杂度最好情况和最坏情况都维持在O(logN)。但是频繁旋转会使插入和删除牺牲掉O(logN)左右的时间,不过相对二叉查找树来说,时间上
阅读全文
摘要:1 #include 2 #include 3 #define MAX_HEAP 200 4 #define heap_full(n) (n==MAX_HEAP) 5 #define heap_empty(n) (!n) 6 //最大堆(大根堆)插入操作 删除操作 7 8 9 typedef struct{10 int k;11 }element ;12 element heap[MAX_HEAP];13 14 void push(element item, int * n)15 {16 int i ;17 if(heap_full(*n)){18 ...
阅读全文
摘要:1 //二叉查找树的建立,插入,删除操作 2 #include 3 #include 4 5 typedef struct bsTree 6 { 7 int k ; 8 struct bsTree * lchild , * rchild ; 9 }bstnode , * bstree ; 10 11 void create_tree(bstree *T,int k1) 12 { 13 (*T) = (bstree)malloc(sizeof(bstnode)); 14 if(!(*T)){ 15 fprintf(st...
阅读全文
摘要:第五章 树的 代码(原文:http://blog.csdn.net/jiajiayouba/article/details/9224403) 1 #include 2 #include 3 4 typedef char ElemType; //数据类型 5 typedef enum {Link,Thread} childTag; //Link表示结点,Thread表示线索 6 typedef struct bitNode 7 { 8 ElemType data; 9 struct bitNode *lchild,*rchild; 10 int ltag,rt...
阅读全文

浙公网安备 33010602011771号