问题描述
我想使用链表创建一个家谱,并按顺序横切树。
规则1:每个节点都应该包含姓名、性别、存储丈夫/妻子信息的指针和存储孩子信息的指针。 规则2:将孩子信息的指针数量设置为家庭中存在的最大孩子数。任何未使用的链接都应该指向 NULL。 配偶的姓名应显示在此人的姓名旁边。
我的程序的输出应该是:May (F) & Fuk (M) - Mee (F) & Keong (M) - Min (F) & Heng (M) - Rui (F) - Ning (F) - 锯 (F)-
我遇到了字符数据中字溢出的问题。谁能帮我吗? 这是我的代码:
#include <stdio.h>
#include <stdlib.h>
struct BinTreeNode {
char data;
struct BinTreeNode *left;
struct BinTreeNode *right;
};
struct BinTreeNode *initBinTreeNode(char data);
void visit(char data);
void preorder(struct BinTreeNode *node);
void postorder(struct BinTreeNode *node);
void inorder(struct BinTreeNode *node);
int main(void){
struct BinTreeNode *root,*parent1,*parent2;
/* growing the tree */
root = initBinTreeNode('May (F) & Fuk (M)');
root->left = initBinTreeNode('Mee (F) & Keong (M)');
root->right = initBinTreeNode('Saw (F)');
parent1 = root->left;
parent1->left = initBinTreeNode('Min (F) & Heng (M)');
parent1->right = initBinTreeNode('Ning (F)');
parent2 = parent1->left;
parent2->left = initBinTreeNode('Rui (F)');
/* traverse and print tree */
printf("\nPreorder traversal:\t"); preorder(root);
return(0); }
void preorder(struct BinTreeNode *node){
if (node){ /* if Node exists */
visit(node->data);
preorder(node->left);
preorder(node->right);
}
}
void visit(char data){
printf("%c ",data);
}
struct BinTreeNode *initBinTreeNode(char data){
struct BinTreeNode *temp;
temp = (struct BinTreeNode *)
malloc(sizeof(struct BinTreeNode));
temp->data = data;
temp->right = NULL;
temp->left = NULL;
return(temp);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)