结构赋值问题

hilter 2008-05-10 10:37:15
Queue[QueueNumber]->Print = CurrentNode->Print->son[i];
这一语句执行后,CurrentNode->Print->son[i]中的son内被清空,

...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hilter 2008-05-10
  • 打赏
  • 举报
回复
struct PrintNode
{
struct A *node;
};

struc A{
int keynum;
int key[10];
struct A* parent;
struct A* son[10]
}
chlaws 2008-05-10
  • 打赏
  • 举报
回复
给出PrintNode结构体并注释下
光这样都让人猜哪能行
hilter 2008-05-10
  • 打赏
  • 举报
回复
int i, j,QueueNumber = 0;
struct PrintNode *Queue[2000], *CurrentNode;
CurrentNode=(struct PrintNode *)malloc(sizeof(struct PrintNode));
CurrentNode->Print=Root;
CurrentNode->height=1;
j=CurrentNode->height;
//加入队列
Queue[QueueNumber] = CurrentNode;
QueueNumber++;

while(QueueNumber > 0)
{
//出队
CurrentNode->Print = Queue[0]->Print;
CurrentNode->height= Queue[0]->height;
QueueNumber--;
i = 0;

while(i < QueueNumber)
{
Queue[i] = Queue[i + 1];
i++;
}

//显示节点
i = 0;

while(i < CurrentNode->Print->keynum)
{
printf("|");
printf("%d", CurrentNode->Print->key[i+1]);
i++;
}

printf("| ");
if(CurrentNode->height>j)
{
printf("\n");
j=CurrentNode->height;
}
//子节点入队
i = 0;

while(CurrentNode->Print->son[i]!= NULL)
{
Queue[QueueNumber]->height=CurrentNode->height+1;
Queue[QueueNumber]->Print = CurrentNode->Print->son[i];
QueueNumber++;
i++;
}
}
printf("\n");
hilter 2008-05-10
  • 打赏
  • 举报
回复
前面正常,就是到这时发现赋值后son里空了
candy110 2008-05-10
  • 打赏
  • 举报
回复
是不是应该把完整点的程序发出来?
hilter 2008-05-10
  • 打赏
  • 举报
回复
为什么呢?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧