节点很多,估计有两百个。如果创建这棵二叉树呢?
也就是我如何将这么多字符串节点一个一个插到这棵树中?
不知表述清楚了没有。。。。。
我想 说的是将大量数据传入树结点,但你这个回答,我确实不明白之间的关联。还是谢谢你。
楼上的,你的程序中的两个IF比较是啥 呢?可否说明一下?
追答else if((cond=strcmp(w, p->word))==0) //已有单词, 且相同单词数+1
//if 是判断w与p->word的大小啊, 我是根据先序插入的,就是说一个新的字符串插入的时候,判断它;if 节点上没有单词就是NULL的时候直接插入;如果节点有单词就比较,if 节点上的单词==插入的单词就不插了,记住有两个相同的。if 新插入的单词比节点的小那就往左边查找下去,直到插入; 大于就往右
{
p->count++;
}
else if (condleft=addtree(p->left, w);
}
c语言 关于二叉树的创建和遍历(中序遍历)
CreateBiTree(BT,string);\/\/创建二叉树 printf("\\n中序遍历二叉树顺序为: ");inorder(BT);\/\/中序遍历二叉树 printf("\\n");}
请问C语言如何创建二叉树???
struct node* left;struct node* right;} Node;typedef struct { \/\/树根 Node* root;} Tree;void insert(Tree* tree, int value)\/\/创建树 { Node* node=(Node*)malloc(sizeof(Node));\/\/创建一个节点 node->data = value;node->left = NULL;node->right = NULL;if (tree->root == ...
二叉树的建立与遍历(C语言)
cout<<"请选择所需功能('A'输出该二叉树序列,'B'输出交换后二叉树序列)"<<endl;cin>>i;bitreptr p;cout<<"输入数据:";Create(p);switch(i){ case 'A':{ cout<<"前序:";preorder(p);cout<<endl;cout<<"中序:";midorder(p);cout<<endl;cout<<"后序:";...
c语言二叉树问题,勿写代码,求详细思考过程
从后序遍历:CDABE得出E是最顶根节点。然后中序遍历:CADEB得出CAD是E的左子树中的,B是E的右子树中的。再分析后序遍历CDA可以知道A是CD的根,而中序是CAD得到C是A的左子树,D是A的右子树。(如下图)最后,先序遍历:若树不空,则先访问根结点,然后依次先根遍历各棵子树。于是得到结束: ...
建立一棵二叉树,数据以字符串形式从键盘输入。
代码如下:char a[105];int len,i;\/\/i逐渐增加 void build(int s){ if(i==len) return;\/\/已经建完树了 char c=a[i];\/\/当前的字符 i++;if(!tree[s].l) tree[s].l=c;\/\/如果树的左边是空的,就给左边赋值 else tree[s].r=c;\/\/反之 if(c!=' ') build(c);if(c...
...元素均为单字母,试编写算法,按树状打印二叉树的算
同理,第四层的打印空间是9个字符宽,第五层是4个字符宽,第六层是1个字符宽。因此,这个程序最多只能显示6层的二叉树。中序访问二叉树(从右子树开始,而不是左子树)的结点,根据结点的深度打印相应的空格,每打印一个字母就换行,当整个二叉树的中序访问结束后就打印出树状二叉树了。
二叉树(C语言)
这个问题,可以看成完全二叉树,有性质有节点i的父节点为: i\/2.而题目要求的意思也就是找到两个节点的公共父节点。(含可能为其中一个节点)因此,思路如下:输入两个值 x,y 找到较大的那个,(循环的,因不断改变,所以需不断比较)做x=x\/2;(假设此时x较大,x为int 型)然后再比较,,...
...定义二叉树的二叉链表存储结构,完成二叉树的建立,先序中序后序遍历...
Tree;printf("input 根节点: ");create(&Tree);printf("先序遍历:");print1(Tree);printf("中序遍历");print2(Tree);printf("后序遍历");print3(Tree);printf("\\n深 度:%d \\n",depth(Tree));printf("总结点数:%d \\n",Cnode(Tree));printf("叶子结点数:%d\\n",leaf);} ...
关于数据结构C语言二叉树的程序,请人帮忙看看~谢谢
typedef int status; \/\/C中没有status类型,所以想使用这个类型你必须定义它 define OK 0 define ERROR -1 define OVERFLOW -2 \/\/OK、OVERLFLOW、ERROR这些宏的定义头文件中是没有的,所以你必须自己定义它们 typedef struct BiTNode{ char data;struct BiTNode *lchild,*rchild;}BiTNode,*BiTree;ty...
c语言,二叉树求解~
先考虑度为2的结点,第一层1个,第二层2个,第三层4个,第四层8个,第五层8个,共23个。然后第5层还有8个空位,先假设为叶子节点,即度为0。第五层满,目前总共31个结点。然后第五层的8个度为2的结点可以引申出16个叶子结点,总共47个,以满足题意,假设成立。故6层。当然比较简单的题...