最小生成树
#include<iostream>
#include<>
#include<>
#include<algorithm>
#define N 10004
using namespace struct _TreeNode *LC;
struct _TreeNode *RC;
}TreeNode;
void CreatFromSqList(TreeNode* &node,int *array,int i,int n)
{
if(n<=0) exit(0);
if(i>n) exit(0);
if(array[i]!=0)
{
node=(TreeNode*)malloc(sizeof(TreeNode));
node->key=array[i];
node->LC=NULL;node->RC=NULL;
if(2*i<=n)
CreatFromSqList(node->LC,array,2*i,n);
if((2*i+1)<=n)
CreatFromSqList(node->RC,array,2*i+1,n);
}
return;
}
int RepreOrder(TreeNode *T)
{
if(T)
{
printf("%d ",T->key);
RepreOrder(T->LC);
RepreOrder(T->RC);
}
return 0;
}
int main()
{
int n,*array;
while(cin>>n){
array=(int*)malloc(sizeof(int)*(n+1));
int i;
for(i=1;i<=n;i++)
array[i]=i;
TreeNode *root=NULL;
CreatFromSqList(root,array,1,n);
RepreOrder(root);
printf("\n");
}
return 0;
}
二叉树中序遍历
#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
typedef struct _TreeNode
{
int key;
struct _TreeNode *LC;
struct _TreeNode *RC;
}TreeNode;
void CreatFromSqList(TreeNode* &node,int *array,int i,int n)
{
if(n<=0) exit(0);
if(i>n) exit(0);
if(array[i]!=0)
{
node=(Tre
数据结构最小生成树 来自淘豆网m.daumloan.com转载请标明出处.