#include <stdio.h> #include <stdlib.h> int i=0,a=0; typedef struct tree { char data; struct tree *left,*right; }tree; struct tree* creat (tree* root,char str[]){ if (str[i]=='*') { root=NULL; i++; } else{ root=(tree*)malloc(sizeof(tree)); root->data=str[i]; i++; printf("%c\n",root->data); creat(root->left,str); creat(root->right,str); } return root; } int main (void){ tree* T=NULL; char str[80]; scanf("%s",str); T=creat(T,str); printf("%c\n",T->data); printf("%c",T->right->data); return 0; }为什么T->right->data没有值
时间: 2024-03-30 10:35:39 浏览: 28
根据你提供的代码,我猜测可能是输入的字符串中没有包含对应的节点导致 T->right 没有被正确赋值。在输入字符串的格式中,'*' 表示该位置为叶子节点,没有左右儿子。因此,如果输入字符串中没有足够的字符表示右子树,那么 T->right 就会是 NULL,访问 T->right->data 就会出错。你可以检查一下输入的字符串格式是否正确,以及输入的字符串是否包含足够的字符表示右子树。
相关问题
优化这段代码#include<stdio.h> #include<stdlib.h> #include<malloc.h> #include<conio.h> #define OK 1 #define error 0 #define MVNum 100 #define MAXSIZE 10 typedef int OtherInfo,QElemtype; typedef char VerTexType; //结构体定义 typedef struct ArcNode{ int adjvex;
首先,该段代码中包含了一些不必要的头文件,例如:conio.h,malloc.h等。建议只保留stdio.h和stdlib.h。
其次,可以将#define OK 1和#define error 0替换为枚举类型,使代码更加清晰易读。
最后,在结构体定义中,可以将OtherInfo和QElemtype合并为一个类型,避免定义过多类型。同时,也可以将结构体中的变量类型进行优化,例如将int类型的adjvex改为short或者char类型。
重构后的代码如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTEX_NUM 100
#define MAX_ARC_NUM 10
typedef enum {
ERROR = 0,
OK = 1
} Status;
typedef char VertexType;
typedef int ArcType;
typedef struct ArcNode {
int adjvex;
struct ArcNode* nextarc;
ArcType* info;
} ArcNode;
typedef struct VNode {
VertexType data;
ArcNode* firstarc;
} VNode, AdjList[MAX_VERTEX_NUM];
typedef struct {
AdjList vertices;
int vexnum, arcnum;
} ALGraph;
```
希望可以帮到你。
#include<stdio.h> #include<stdlib.h> #include<time.h> #include<string.h> typedef struct user_information { int flag; int name; char key[10]; struct user_information* next; }user;
这是一个定义了用户信息的结构体 user_information,并定义了一个别名 user。该结构体包含了用户的标识符 flag、用户名 name、密码 key 和指向下一个用户的指针 next。其中,flag 和 name 都是整型,key 是一个长度为 10 的字符串。这个结构体可以用于存储用户的信息,例如在一个用户管理系统中,可以用单链表来存储所有注册的用户信息,每个节点就是一个 user 结构体,包含了该用户的所有信息。
阅读全文