欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
關于C語言構建二叉樹程序的問題!
[打印本頁]
作者:
2602482600
時間:
2020-3-19 18:26
標題:
關于C語言構建二叉樹程序的問題!
輸入8個整數構建一個二叉樹,對于二叉樹節點,比當前節點少于或等于的放在樹的左邊子節點,大于的放在右邊子節點。
以下是我寫的代碼,輸出不出來這是為什么呢
filehelper_1584612346713_779.jpg
(15.71 KB, 下載次數: 25)
下載附件
2020-3-19 18:25 上傳
#include <stdio.h>
#include <stdlib.h>
typedef struct node { //節點結構體
int data;
struct node *left;
struct node *right;
} Node;
Node* insert(Node *root,int value) //創建樹
{
Node* node=(Node*)malloc(sizeof(Node));//創建一個節點
node->data = value;
node->left = NULL;
node->right = NULL;
if(root==NULL) //樹為空則創建根
{
root==node;
}
else
{
Node *temp=root; //從樹根開始判斷
while(temp!=NULL)
{
if(value<=temp->data) //小于或等于進左兒子
{
if(temp->left==NULL) //若左兒子為空,直接寫入
{
temp->left=node;
return root;
}
else //若左兒子不為空,繼續判斷
{
temp=temp->left;
}
}
else //大于進右兒子
{
if(temp->right==NULL) //同左兒子
{
temp->right=node;
return root;
}
else
{
temp=temp->right;
}
}
}
}
return root;
}
void PreOrderTree(Node* root) //前序遍歷
{
if (root != NULL)
{
printf("%d ", root->data);
PreOrderTree(root->left);
PreOrderTree(root->right);
}
}
void InOrderTree(Node* root) //中序遍歷
{
if (root != NULL)
{
PreOrderTree(root->left);
printf("%d ", root->data);
PreOrderTree(root->right);
}
}
void PostOrderTree(Node* root) //后序遍歷
{
if (root != NULL)
{
PreOrderTree(root->left);
PreOrderTree(root->right);
printf("%d ", root->data);
}
}
int main()
{
int data[8];
int i;
printf("請輸入8個整數\n");
for(i=0;i<8;i++)
{
scanf("%d",&data[i]);
}
Node *root=NULL; //創建空樹
for(i=0;i<8;i++)
{
root=insert(root,data[i]);
}
printf("前序遍歷為:\n");
PreOrderTree(root);
printf("\n");
printf("中序遍歷為:\n");
InOrderTree(root);
printf("\n");
printf("后序遍歷為:\n");
PostOrderTree(root);
printf("\n");
return 0;
}
復制代碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1