| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1070 人关注过本帖
标题:有关栈与树的问题,郁闷很久了~大家都来看看啊谢了~
只看楼主 加入收藏
wycwyc
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-10-18
收藏
 问题点数:0 回复次数:14 
有关栈与树的问题,郁闷很久了~大家都来看看啊谢了~
有关栈与树的问题,郁闷很久了~大家都来看看啊谢了~
就是用栈储存树,再调用函数求树的根节点

#include<stdio.h>
#include"malloc.h"

typedef struct node
{
    char data;
    struct node *lchild;
    struct node *rchild;
}shu;

typedef struct
{ shu * qu[100];
  int top;
} SeqStack;

SeqStack* make()
{
SeqStack *w;
w=(SeqStack*)malloc(sizeof(SeqStack));
w->top=1;
return w;
}

SeqStack * past()
{
    char ch;
    SeqStack *w;
    int j=0,n=0;
    shu *root=NULL,*s=NULL;
    ch=getchar();
    while(ch!='\n')
    {
        if(ch=='@')w->qu[w->top]=NULL;
        else if(w->top>1&&w->qu[w->top/2]==NULL)//我调试时程序走到这里就走不下去了,提示undandled exceptionin wycwyc.exe:OxCOOOOOO5:Violation 是说的什么意思 帮忙解释下谢了//        {ch=getchar();continue;}
        else
        {
            s=(shu*)malloc(sizeof(shu));
            s->data=ch;s->lchild=NULL;s->rchild=NULL;
            w->qu[w->top]=s;
            if(w->top==1)root=s;
            else if(w->top%2==0) w->qu[w->top/2]->lchild=s;
            else w->qu[w->top/2]->rchild=s;
            n++;
        }printf("iiii");
        w->top++;
        ch=getchar();
    }printf("%d",w->qu[w->top]);
    return (w);
}

main()
{
    SeqStack *W;
    W=make();
    W=past();
    printf("%d",W->qu[W->top]);
}
搜索更多相关主题的帖子: include return 
2008-11-21 16:27
wycwyc
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-10-18
收藏
得分:0 
2008-11-21 17:11
wycwyc
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-10-18
收藏
得分:0 
没有知道的吗?
2008-11-21 17:53
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
堆栈不会太难

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-21 17:57
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
[bo][un]zqy110007[/un] 在 2008-11-21 17:57 的发言:[/bo]

堆栈不会太难

你知道typedef 是什么吗??

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-11-21 18:28
dillon
Rank: 1
等 级:新手上路
威 望:2
帖 子:183
专家分:0
注 册:2008-10-6
收藏
得分:0 
唉!LZ的程序调不好。
2008-11-21 18:34
wycwyc
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2008-10-18
收藏
得分:0 
好吧 不过还是谢谢你
2008-11-21 19:21
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
问题一:w在你的past函数里面没有赋值。
解决方法:w作为传入参数。SeqStack *past(SeqStack *w);
W = past(make());
问题二:你的top实际上是指向栈顶的上一个元素的。然而你在输出的时候,直接输出了top指向的元素的值,这个值其实还没有写出来。
解决方法:printf的时候,引用top-1而不是top
潜在问题一:你的top初始值为1,实际浪费了SeqStack的一个位置。

不好意思拿楼主的程序练习GDB了,嘿嘿……
2008-11-21 21:26
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
收藏
得分:0 
[bo][un]liyanhong[/un] 在 2008-11-21 18:28 的发言:[/bo]


你知道typedef 是什么吗??

不太清楚,好像是可以自定义类型名
比如:typedef int abc,你就可以用 abc来定义变量了,也就是说abc也算是半个关键字了吧..

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-22 12:37
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
LS:他的意思是,你连typedef都不知道,就不要说堆栈和树很简单了………………

别理他,酸葡萄心理,LS加油学习哈,我14岁的时候才只会用BASIC在学习机上写贪吃蛇…………

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-11-22 15:50
快速回复:有关栈与树的问题,郁闷很久了~大家都来看看啊谢了~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012429 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved