| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 336 人关注过本帖
标题:链栈问题,请高手帮忙啊
只看楼主 加入收藏
梓林
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2010-3-8
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
链栈问题,请高手帮忙啊
#include<stdio.h>
#include<stdlib.h>

struct LNode{
    int data;
    struct LNode *next;
}L;
//创建一个空表
void initstack(struct LNode *L)
{L==NULL;
}


//进栈
void insert(struct LNode *L,int m)
{   int i;
    struct LNode *p;
for (i=0;i<m;i++)
{ p=malloc(sizeof(struct LNode));
        scanf("%d",&p->data);
        p->next=NULL;
        if (L==NULL)
            L=p;
        else
        {p->next=L;
        L=p;}     }
}


//所有元素出栈
void display_all(struct LNode *L)
{
 
   printf("链栈的全部数据元素如下:\n");
    while(L!=NULL)
    {printf("%d ",L->data);
    L=L->next;}

}
void main()
{int length;
initstack(&L);
printf("请输入你要输入的个数:\n");
scanf("%d",&length);
printf("请输入%d个数据\n",length);
insert(&L,length);
display_all(&L);
}
         
简单的进栈和出栈,怎么输出的是0,请高手帮忙,用的是vc++编译器,多谢多谢!
                  
2010-05-10 13:34
梓林
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2010-3-8
收藏
得分:0 
谁帮个忙啊,多谢
2010-05-10 13:54
梓林
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2010-3-8
收藏
得分:0 
怎么没人帮忙呢,拜托了
2010-05-10 14:35
ghc87
Rank: 2
等 级:论坛游民
帖 子:8
专家分:25
注 册:2010-3-24
收藏
得分:10 
从insert函数出来后链表L中的数据没有传出来
struct LNode{
    int data;
    struct LNode *next;
}L;
//创建一个空表
void initstack(struct LNode *L)
{
    L->data = 0;
    L->next = NULL;
}


//进栈
LNode *insert(struct LNode *L,int m)
{   
    int i;
    struct LNode *p;
    for (i=0;i<m;i++)
    {
        p=(LNode *)malloc(sizeof(struct LNode));
        scanf("%d",&p->data);
        p->next=NULL;
        if (L->data==0)
            L=p;
        else
        {
            p->next=L;
            L=p;
        }     
    }
    return L;
}


//所有元素出栈
void display_all(struct LNode *L)
{

    printf("链栈的全部数据元素如下:\n");
    while(L!=NULL)
    {
        printf("%d ",L->data);
        L=L->next;
    }

}
void main()
{
    int length;
    LNode *head;
    initstack(&L);
    printf("请输入你要输入的个数:\n");
    scanf("%d",&length);
    printf("请输入%d个数据\n",length);
    head = insert(&L,length);
    display_all(head);
}
2010-05-10 15:01
梓林
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2010-3-8
收藏
得分:0 
不对啊,编译时好多的错误,
2010-05-10 16:41
ghc87
Rank: 2
等 级:论坛游民
帖 子:8
专家分:25
注 册:2010-3-24
收藏
得分:0 
你用的什么编译器,我用vs2003没有问题
2010-05-10 16:46
梓林
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2010-3-8
收藏
得分:0 
vc++
2010-05-10 17:02
南国利剑
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:29
帖 子:1165
专家分:3536
注 册:2010-4-12
收藏
得分:10 
回复 楼主 梓林
为了让楼主看懂,我在你的基础上做了修改。
你看看。附代码:
程序代码:
#include<stdio.h>
#include<stdlib.h>

struct LNode{
    int data;
    struct LNode *next;
}L;

//创建一个空表
void initstack(struct LNode *L)
{
    L=NULL;
}


//进栈
void insert(struct LNode *L,int m)
{  
    int i;
    struct LNode *p;
for (i=0;i<m;i++)
{
    p=(LNode*)malloc(sizeof(struct LNode));    //这里要进行强制类型转换
    scanf("%d",&p->data);
    p->next=NULL;
    if (L==NULL)
        L->next=p;//此处修改了
    else
    {
        p->next=L->next;//此处修改了
        L->next=p;
    }    
}
}


//所有元素出栈
void display_all(struct LNode *L)
{

   printf("链栈的全部数据元素如下:\n");
    while(L!=NULL)
    {
        printf("%d ",L->data);
        L=L->next;
    }
}

void main()
{
    int length;
    initstack(&L);
    printf("请输入你要输入的个数:\n");
    scanf("%d",&length);
    printf("请输入%d个数据\n",length);
    insert(&L,length);
    display_all(&L);
}


南国利剑
2010-05-10 17:45
快速回复:链栈问题,请高手帮忙啊
数据加载中...
 
   



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

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