此代码受其创建者的青睐。 我想给代码我的实际数字尽可能多。 我意识到我将不得不做这样的事情: root-> left-> left-> left 创建更多级别
但是,如果我想创建更多关卡,该如何在代码中表达我的想法?
我的意思是继续这个学期只是浪费时间!
#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node* left;
struct node* right;
};
struct node* newNode(int data)
{
struct node* node = (struct node*)malloc(sizeof(struct node));
node->data = data;
node->left = NULL;
node->right = NULL;
return(node);
}
void printInorder(struct node* node)
{
if (node == NULL)
return;
printInorder(node->left);
printf("%d ", node->data);
printInorder(node->right);
}
void swapTree(struct node*node)
{
if(node==NULL) return;
struct node*temp=node->left;
node->left=node->right;
node->right=temp;
swapTree(node->left);
swapTree(node->right);
}
int main()
{
struct node *root = newNode(1);
root->left = newNode(2);
root->right = newNode(3);
root->left->left = newNode(4);
root->left->right = newNode(5);
printf("\n Inorder traversal of binary tree is \n");
printInorder(root);
swapTree(root);
printf("\n After swap Inorder traversal of binary tree is \n");
printInorder(root);
return 0;
}
答案 0 :(得分:0)
您可以执行以下操作:
int value;
scanf("%d", &value);
struct node *inputNode = newNode(value);
此后,inputNode
将指向一个以value
作为其data
字段的节点。您将需要实现一个使用该指针并将其插入树中正确位置的函数。这将取决于您要实现的树的类型。