用C语言编写一个程序实现将一个顺序储存的二叉树转化成链表储存的二叉树,并对其进行遍历输出结果、以下是我编的程序,但是没有结果输出,求高手指教!!!
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
typedef struct Node{
int value;
struct Node *left;
struct Node *right;
}BTNode;
int array[]={1,2,3,4,5,6,7};
BTNode *btree2array(BTNode *node, int index)
{
BTNode *root;
if(node == NULL)
array[index] = NULL;
array[index] = node->value;
btree2array(node->left, index * 2 + 1);
btree2array(node->right, index * 2 + 2);
root=node;
return root;
}
void PreTraverse(BTNode *root)
{
if(root!=NULL)
{
PreTraverse(root->left);
printf("%d",root->value);
PreTraverse(root->right);
}
else
printf(" ");
}
void main()
{
BTNode *root;
BTNode *node;
int size=7;
root=btree2array(node, size);
PreTraverse(root);
}
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
typedef struct Node{
int value;
struct Node *left;
struct Node *right;
}BTNode;
int array[]={1,2,3,4,5,6,7};
BTNode *btree2array(BTNode *node, int index)
{
BTNode *root;
if(node == NULL)
array[index] = NULL;
array[index] = node->value;
btree2array(node->left, index * 2 + 1);
btree2array(node->right, index * 2 + 2);
root=node;
return root;
}
void PreTraverse(BTNode *root)
{
if(root!=NULL)
{
PreTraverse(root->left);
printf("%d",root->value);
PreTraverse(root->right);
}
else
printf(" ");
}
void main()
{
BTNode *root;
BTNode *node;
int size=7;
root=btree2array(node, size);
PreTraverse(root);
}
