leonard10 2021-03-11 15:05 采纳率: 100%
浏览 49
已采纳

先序创建线索二叉树遇到错误

#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>

typedef enum pointertag{link,thread} pointertag;				
typedef char Elemtype;
typedef struct ThreadNode{
	Elemtype data;
	struct ThreadNode *lchild,*rchild;
	pointertag ltag,rtag;
}ThreadNode,*ThreadTree;

ThreadTree InitpreThreadTree(ThreadTree *p){			
	char ch;
	scanf("%c",&ch);
	if(ch=='#'){
		(*p)=NULL;
	}
	else{
		(*p)=(ThreadNode*)malloc(sizeof(ThreadNode));
		(*p)->ltag = link;
		(*p)->rtag = link;					
		(*p)->data =ch;
		(*p)->lchild = InitpreThreadTree((*p)->lchild);
		(*p)->rchild = InitpreThreadTree((*p)->rchild); 
	}
	return (*p);
} 

void main()
{
	ThreadTree T;
	InitpreThreadTree(&T);
} 

这里说期待我用 指向结点的指针的指针 而不是 结点的指针 但是我这里用ThreadTree *p 明明就是指向结点的指针的指针

麻烦大佬给我解答一下 

  • 写回答

2条回答 默认 最新

  • 8号店长 2021-03-11 17:30
    关注

    (*p)->rchild的类型是struct ThreadNode *lchild,*rchild;

    ThreadTree InitpreThreadTree(ThreadTree *p)返回值的类型是TreadTree

    我觉得应该是有问题的,我也是新手不太清楚

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?