摘要: 我们设置一个结构数组 HuffNode 保存哈夫曼树中各结点的信息。根据二叉树的性质可知,具有n个叶子结点的哈夫曼树共有 2n-1 个结点,所以数组 HuffNode 的大小设置为 2n-1 。HuffNode 结构中有 weight, lchild, rchild 和 parent 域。其中,weight 域保存结点的权值, lchild 和 rchild 分别保存该结点的左、右孩子的结点在数组 HuffNode 中的序号,从而建立起结点之间的关系。为了判定一个结点是否已加入到要建立的哈夫曼树中,可通过 parent 域的值来确定。初始时 parent 的值为 -1。当结点加入到树中去时,该 阅读全文
posted @ 2013-09-29 16:59 小竹zz 阅读(1577) 评论(0) 推荐(0) 编辑
摘要: #include using namespace std; typedef struct BinaryTreeNode { char data; BinaryTreeNode * leftChild; BinaryTreeNode * rightChild; }Node; void MakeBinaryTree(Node** root, char* preOrder, char* midOrder, int length) { if (length == 0) { (*root) = NULL; return; ... 阅读全文
posted @ 2013-09-29 00:10 小竹zz 阅读(150) 评论(0) 推荐(0) 编辑
摘要: int match(char a[],int n) { char sq[maxSize]; int top=-1; for(int i=0;i<n;i++) { if(a[i]=='(') sq[++top]=a[i]; if(a[i]=='[') sq[++top]=a[i]; if(a[i]==')') { if(top==-1) return 0; if(sq[top]=='(') --top; } if(a[i]==']') { if(top==-1) return 0; if(sq[top... 阅读全文
posted @ 2013-09-28 23:54 小竹zz 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 转载自董的博客1. 前言本文介绍了常用的排列组合算法,包括全排列算法,全组合算法,m个数选n个组合算法等。2. 排列算法常见的排列算法有:(A)字典序法(B)递增进位制数法(C)递减进位制数法(D)邻位对换法(E)递归法介绍常用的两种:(1) 字典序法对给定的字符集中的字符规定了一个先后关系,在此基础上按照顺序依次产生每个排列。[例]字符集{1,2,3},较小的数字较先,这样按字典序生成的全排列是:123,132,213,231,312,321。生成给定全排列的下一个排列 所谓一个的下一个就是这一个与下一个之间没有字典顺序中相邻的字符串。这就要求这一个与下一个有尽可能长的共同前缀,也即变化限制 阅读全文
posted @ 2013-09-28 10:30 小竹zz 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 这两道题答案我觉得太复杂笔译理解我做的方法很容易理解而且简单//寻找倒数第k个 int count=0; void LocateE(LNode *&L,int k) { if(L->next!=NULL) { LocateE(L->next,k); count++; if(count==k) { printf(" 倒数第%d个位置是%d",k,L->next->data); } } } //数据结构高分笔记 第二章 综合应用第二题 void move(int a[],int n,int p) { int temp; for(int i=0;i 阅读全文
posted @ 2013-09-28 10:21 小竹zz 阅读(349) 评论(0) 推荐(0) 编辑
摘要: // 队列.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "malloc.h" #define maxSize 10 //循环队列 typedef struct { int data[maxSize]; int front; int rear; }SqQueue; void initQueue(SqQueue &qu)//初始队 { qu.front=qu.rear=0; } int isEmpty(SqQueue qu)//判断队是否为空 { if(qu.front==qu.rear) 阅读全文
posted @ 2013-09-27 23:49 小竹zz 阅读(231) 评论(0) 推荐(0) 编辑
摘要: // 队列.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "malloc.h" #define maxSize 10 //循环队列 typedef struct { int data[maxSize]; int front; int rear; }SqQueue; void initQueue(SqQueue &qu)//初始队 { qu.front=qu.rear=0; } int isEmpty(SqQueue qu)//判断队是否为空 { if(qu.front==qu.rear) 阅读全文
posted @ 2013-09-27 23:49 小竹zz 阅读(190) 评论(0) 推荐(0) 编辑
摘要: $v) { if(in_array($k, $this->fieldList)){ $fieldList.=$k.","; if (!get_magic_quotes_gpc()) $value .= "'".addslashes($v)."',"; else $value .= "'".$v."',"; } } $fieldList=rtrim($fieldList, ","); $value=rtrim($value, ", 阅读全文
posted @ 2013-09-27 14:42 小竹zz 阅读(179) 评论(0) 推荐(0) 编辑
摘要: each_disNums = intval($each_disNums); $this->nums = intval($nums); if (!$current_page) { $this->current_page = 1; } else { $this->current_page = intval($current_page); } $this->sub_pages = intval($sub_pages); $this->page... 阅读全文
posted @ 2013-09-27 14:41 小竹zz 阅读(150) 评论(0) 推荐(0) 编辑
摘要: #include "stdafx.h" #include "malloc.h" #define maxSize 100 typedef struct LNode { int data; struct LNode *next; }LNode; void push(LNode *&L,int x)//使用这个方法 使得栈的入栈和出栈都在表头了 { LNode *p; p=(LNode*)malloc(sizeof(LNode)); p->next=L->next; p->data=x; L->next=p; } void pu 阅读全文
posted @ 2013-09-27 14:37 小竹zz 阅读(199) 评论(0) 推荐(0) 编辑