| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 467 人关注过本帖
标题:程序能运行 怎么到求双亲的时候要调试 不明白
取消只看楼主 加入收藏
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
结帖率:77.78%
收藏
 问题点数:0 回复次数:1 
程序能运行 怎么到求双亲的时候要调试 不明白
#include"iostream.h"
#define maxsize 20
typedef char elemtype;
typedef char tsbnode;
typedef struct       //双亲存储结构
{
    elemtype data;  //数据元素的值
    int parent;     //双亲结点下标
}pnode;             //一个结点结构            
typedef struct      //孩子链存储结构
{
    pnode nodes[maxsize];   //结构体数组,每一个元素有两个成员,data,parent
    int num;                //树中结点的个数
}psqtree;                   //树的顺序存储结构类型
  
void createtree(psqtree  &t1)    //能进行初始化;即在算法中用双亲数组完成树的存储
{
    int i;               
    for(i=1;i<=t1.num;i++)      //依次输入元素的值,初始化数组nodes[]
    {
        cout<<"输出第"<<i<<"存储元素的值和下标:";
        cin>>t1.nodes[i].data;
        cin>>t1.nodes[i].parent;
    }
}

void gettree(psqtree &t1,elemtype e)     //输入任一结点值,求其在数组中的存储位置
{
    int i=1;
    while(e!=t1.nodes[i].data)
    {
        i++;
    }
    if(i>t1.num)
        cout<<"无此结点!"<<endl;
    else
        cout<<i<<endl;
}

void gettreel(psqtree &t1,elemtype e)    //输入一结点值,求其双亲
{
    int i;
    cout<<"输入一结点:";  
    cin>>e;
    while(e!=t1.nodes[i].data)
    {
        i++;
    }
    if(t1.nodes[i].data==t1.nodes[0].data)
    {
        cout<<"此结点为根节点,没有双亲!"<<endl;
    }
    else
    {
        if(i>t1.num)
        {
            cout<<"无此结点!"<<endl;
        }
        else
        {
            cout<<"其双亲元素的值为:"<<endl;
            cout<<t1.nodes[t1.nodes[i].parent].data<<endl;
        }
    }
}

void gettree2(psqtree  &t1,elemtype e)   //输入一结点,求其孩子
{
    int i=1;
    cout<<"输入一结点:";  
    cin>>e;
    int j=0;
    while(t1.nodes[i].data!=e)
    {
        i++;
    }
    while(j<t1.num)   
    {
        if(t1.nodes[j].parent==i)
        {
            cout<<"子结点:"<<t1.nodes[j].data<<endl;
        }
        j++;
    }
}

void main()
{
    psqtree  t1;             //定义树变量
    elemtype e;
    cout<<"输出结点个数:";    //输入结点个数,初始化num
    cin>>t1.num;  
    createtree(t1);
    cout<<"输入任意一结点值:";  
    cin>>e;
    cout<<"存储的位置是:"<<endl;
    gettree(t1,e);
    gettreel(t1,e);
    gettree2(t1,e);
}
搜索更多相关主题的帖子: 运行 调试 双亲 
2009-12-02 11:30
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
收藏
得分:0 
感觉是不是越权了
希望能帮我改下
2009-12-02 11:31
快速回复:程序能运行 怎么到求双亲的时候要调试 不明白
数据加载中...
 
   



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

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