zmhczw123 2022-07-31 17:28 采纳率: 57.1%
浏览 43

C语言脸面二叉树的层次建树创建是失败

遇到的问题:
用递归层序创建一个二叉树时,输入abcdefg,而树里面却只有abc

问题相关代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>

typedef struct BinaryTree {
char c;
struct BinaryTree* lchild;
struct BinaryTree* rchild;
}BTree,*pBTree;

typedef struct LinkList {
pBTree pInsert;
struct LinkList* LNext;
}LinkList,*pLinkList;

void BuildTree(pBTree& pTreeRoot, pLinkList& pHead, pLinkList& pTail, char c)
{
pBTree pTreeNew; pLinkList pLinkNew;
pTreeNew = (pBTree)calloc(1, sizeof(BTree));
pLinkNew = (pLinkList)calloc(1, sizeof(LinkList));
pTreeNew->c = c;
pLinkNew->pInsert = pTreeNew;
if (pTreeRoot == NULL) {
pTreeRoot = pTreeNew;
if (pHead == NULL) {
pHead =pTail= pLinkNew;
}
else return;
}
else{
pTail ->LNext= pLinkNew;
pTail = pTail->LNext;
if (pHead->pInsert->lchild == NULL) {
BuildTree(pHead->pInsert->lchild, pHead, pTail, c);
}
else {
BuildTree(pHead->pInsert->rchild, pHead, pTail, c);
pHead = pHead->LNext;
}
}
}

int main()
{
pBTree pTreeRoot;
pLinkList pHead, pTail;
pHead = (pLinkList)calloc(1, sizeof(LinkList));
pTail = (pLinkList)calloc(1, sizeof(LinkList));
pHead = pTail = NULL;
pTreeRoot = (pBTree)malloc(sizeof(BTree));
pTreeRoot = NULL;
char c=NULL;
while (c != '\n') {
scanf("%c", &c);
BuildTree(pTreeRoot, pHead, pTail, c);
}
}

img

img

  • 写回答

1条回答 默认 最新

  • 叶落秋白 后端领域优质创作者 2022-07-31 18:14
    关注

    输入格式要把控好

    评论

报告相同问题?

问题事件

  • 创建了问题 7月31日

悬赏问题

  • ¥15 问题重发,R语言:代码运行过程中出现如下警告,请求如何解决!
  • ¥15 苍穹外卖拦截器token为null
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!
  • ¥20 wpf datagrid单元闪烁效果失灵
  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响