ツリー構造を挿入/削除する関数を記述することになっていますが、プログラムを正しく実行するのが難しいです。ノードを挿入/削除するCプログラムの実行に問題があります
typedef struct tree tree;
#define MAXWORD 26
struct tree{
struct tree *b4;
struct tree *after;
char word[MAXWORD];
};
void Insert(char *);
void Delete(char *);
#ifndef MAIN
extern tree *root;
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAIN 1
#include "tree.h"
void printtree();
tree *root=NULL;
main(int argc, char **argv)
{
tree *node;
char buf[MAXWORD];
extern tree *root;
tree *p;
while((scanf("%s",buf))>0)
Insert(buf);
while(argc-->1)
Delete(argv[argc]);
printf("Print binary tree in order\n");
if(root!=NULL)
printtree(root);
}
void printtree(tree *root){
if(root->b4!=NULL)
printtree(root->b4);
printf("Node is %s \n",root->word);
if (root->after!=NULL)
printtree(root->after);
}
と出力のようなものでなければなりません:ここではスケルトンコードがある
プロジェクト>:猫 - | ./bintree ABC XYZためにヌル2>は/ dev/
ABC
QWE
ASD
ZXC
QWE
プリントバイナリツリー
ノードasd
ノードは、ノードがZXC
プロジェクト>です
QWEです:私の挿入機能を書き込み、プログラムを実行した後、私は「印刷ツリーを実行している悩みを抱えているものの、いくつかの理由
プログラムの「オーダー」セクションを無限ループにすることなく、正常に入力を要求します。何か案は?一般algorithバイナリツリーを印刷するには
を持っているものを使用すると、あなたのインデントを修正してください。 – ThingyWotsit