| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 524 人关注过本帖
标题:数据结构中关于先序遍历的问题
只看楼主 加入收藏
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
结帖率:73.96%
收藏
 问题点数:0 回复次数:0 
数据结构中关于先序遍历的问题
程序代码:
#include <stdio.h>
#include <malloc.h>
#define LEN sizeof(struct data)
struct data
{
    int num;
    struct data *next;
};
struct data * creat(void);
struct data * sort(struct data *);
void print(struct data *);
void main()
{
    struct data * head;
    printf("请输入数据(输入结束请按0):\n");
    head=creat();
    printf("您输入的数据为:\n");
    print(head);
    head=sort(head);
    printf("逆序后的数据为:\n");
    print(head);
}

struct data * creat(void)
{
    int n=0;
    struct data * Head,*p1,*p2;
    p1=p2=(struct data *)malloc(LEN);
    scanf("%d",&p1->num);
    Head=NULL;
    while(p1->num!=0)
    {
        n=n+1;
        if(n==1)
            Head=p1;
        else
            p2->next=p1;
        p2=p1;
        p1=(struct data *)malloc(LEN);
        scanf("%d",&p1->num);
    }
    p2->next=NULL;
    return Head;
}

struct data * sort(struct data * Head)
{
    struct data *p,*NewHead=NULL;
    p=NewHead=Head;
    while(NewHead->next!=NULL)
    {
        NewHead=NewHead->next;
        NewHead->next=p;
        p=NewHead;
    }
    Head->next=NULL;
    return NewHead;
}

void print(struct data * Head)
{
    struct data *p;
    p=Head;
    if(Head!=NULL)
        do
        {
            printf("%6d",p->num);
            p=p->next;
        }while(p!=NULL);
    printf("\n");
} 
利用顺序栈先序遍历二叉树  输入12##3##
结果没有3 但是有 1 和 2  还出现内存错误  
高手解释一下
2011-09-28 09:55
快速回复:数据结构中关于先序遍历的问题
数据加载中...
 
   



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

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