树
南风~古草
贵州大学软件工程专业大三,学子彦秉成。立志于笃行求是,践行人生信仰的奋斗者!
展开
-
已知二叉树采用顺序存储,节点数据为非负整数,空树为-1,编写函数Exchange,交换树中所有节点的左右子树。
#include<stdio.h>#include<stdlib.h>#include<math.h>void swap(int a[],int i,int j){ int temp=a[i]; a[i]=a[j]; a[j]=temp;}void Exchange(int a[]){/*二叉树顺序存储交换左右子树的核心代码*/ if(a[0]==-1)return; int i,j,k,flag; k=2; do{ flag=0; .原创 2021-12-21 15:46:30 · 144 阅读 · 0 评论 -
二叉树交换左右子树(C语言,链式存储)
#include<stdio.h>#include<stdlib.h>#include<time.h>struct TreeNode{ int data; struct TreeNode *left; struct TreeNode *right;};struct TreeNode *createNode(int num){ struct TreeNode *T; T=(struct TreeNode *)malloc(sizeof(struct T.原创 2021-12-16 19:36:28 · 1822 阅读 · 0 评论 -
利用堆排序思想构造大顶堆(C语言)
#include<stdio.h>#include<stdlib.h>void HeapSort(int a[],int n){/*堆排序核心代码*/ for(int i=(n-1)/2;i>=0;i--){ int j=i; while(2*j+1<n){ int child=2*j+1; if(child<n-1&&a[child]<a[child.原创 2021-11-19 16:27:20 · 780 阅读 · 0 评论 -
大顶堆的构建,插入、删除与遍历(C语言)
#include<stdio.h>#include<stdlib.h>struct MaxHeap{ int *data; int size; int maxsize;};struct MaxHeap *createMaxH(int maxSize){ struct MaxHeap *H; H=(struct MaxHeap *)malloc(sizeof(struct MaxHeap)*maxSize); H->dat.原创 2021-11-19 15:19:54 · 1655 阅读 · 0 评论 -
求平衡二叉树的ASL(C语言,利用了层序遍历和队列)
#include<stdio.h>#include<stdlib.h>struct AVLNode{ int data; int height; int state; struct AVLNode *left; struct AVLNode *right;};struct queue{ int **data; int front,rear; int size; int maxsize;};int g.原创 2021-11-17 09:36:20 · 1784 阅读 · 0 评论 -
求平衡二叉树的ASL(C语言,利用了回溯法和栈)
#include<stdio.h>#include<stdlib.h>struct AVLNode{ int data; int height; int state; struct AVLNode *left; struct AVLNode *right;};struct stack{ struct AVLNode **data; int top; int maxsize;};int getHeight(s.原创 2021-11-16 18:18:09 · 1413 阅读 · 0 评论 -
平衡二叉树的创建(C语言)
#include<stdio.h>#include<stdlib.h>struct AVLNode{ int data; int height; struct AVLNode *left; struct AVLNode *right;};int getHeight(struct AVLNode *T){ if(T==NULL){ return 0; } return T->height;}in.原创 2021-11-11 18:17:02 · 1111 阅读 · 0 评论 -
哈夫曼编码代码实现(C语言)
#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>struct HTreeNode{ int parent; int lchild; int rchild; int weight;};struct HTree{ struct HTreeNode *body; int length;};struct HTree.原创 2021-11-08 23:50:23 · 7142 阅读 · 8 评论 -
哈夫曼树的构造(C语言)
#include<stdio.h>#include<stdlib.h>#include<math.h>struct HTreeNode{ int parent; int lchild; int rchild; int weight;};struct HTree{ struct HTreeNode *body; int length;};struct HTree *iniHTree(int num){/*对哈夫.原创 2021-11-08 21:08:32 · 808 阅读 · 0 评论 -
给定值删除二叉树中的节点(C语言)
#include<stdio.h>#include<stdlib.h>struct TreeNode{ int data; struct TreeNode *left; struct TreeNode *right;};struct TreeNode *findMin(struct TreeNode *T){ if(T==NULL){ return NULL; } if(T->left==NULL){/*.原创 2021-11-05 19:29:11 · 579 阅读 · 0 评论 -
根据节点值求父节点(C语言)
#include<stdio.h>#include<stdlib.h>struct TreeNode{ int data; struct TreeNode *left; struct TreeNode *right;};struct TreeNode *createNode(int num){ struct TreeNode *T; T=(struct TreeNode *)malloc(sizeof(struct TreeNode).原创 2021-10-28 21:25:18 · 620 阅读 · 2 评论 -
二叉树的复制(C语言)
#include<stdio.h>#include<stdlib.h>#include<time.h>struct TreeNode{ int data; struct TreeNode *left; struct TreeNode *right;};struct TreeNode *createNode(int num){ struct TreeNode *T; T=(struct TreeNode *)malloc(.原创 2021-10-28 19:09:26 · 3149 阅读 · 0 评论 -
利用前序遍历构建二叉树(C语言)
#include<stdio.h>#include<stdlib.h>struct TreeNode{ char data; struct TreeNode *left; struct TreeNode *right;};struct TreeNode *create_by_pre(struct TreeNode *T){/*利用前序遍历构建二叉树*/ char ch; printf("ch="); scanf("%c",&a.原创 2021-10-28 18:26:04 · 9307 阅读 · 18 评论 -
二叉树的基本操作(C语言)
#include<stdio.h>#include<stdlib.h>#include<time.h>struct TreeNode{ int data; struct TreeNode *left; struct TreeNode *right;};struct TreeNode *createNode(int num){/*创建新的树节点*/ struct TreeNode *T; T=(struct TreeNod.原创 2021-10-21 21:07:42 · 316 阅读 · 0 评论