| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 598 人关注过本帖
标题:栈的链式存储,形参部分有些不明白
只看楼主 加入收藏
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
结帖率:85.71%
收藏
 问题点数:0 回复次数:3 
栈的链式存储,形参部分有些不明白
程序代码:
#include<stdlib.h>
#include<iostream.h>
#include<malloc.h>

typedef char ElemType;
typedef struct lsnode
{
    ElemType data;    /* 存储结点数据 */
    struct lsnode *next;    /* 指针域 */
}LinkStack;

void InitStack(LinkStack *&ls)
{
    ls=NULL;
}

void Push(LinkStack *&ls,ElemType x)
{
    LinkStack *p;
    p=(LinkStack *)malloc(sizeof(LinkStack));
    p->data=x;
    p->next=ls;
    ls=p;
}

int Pop(LinkStack *&ls,ElemType &x)
{
    LinkStack *p;
    if(ls==NULL)
        return 0;
    else
    {
        p=ls;
        x=p->data;
        ls=p->next;
        free(p);
        return 1;
    }
}

int GetTop(LinkStack *ls,ElemType &x)
{
    if(ls==NULL)
        return 0;
    else
    {
        x=ls->data;
        return 1;
    }
}

int StackEmpty(LinkStack *ls)
{
    if(ls==NULL)
        return 1;
    else
        return 0;
}

void main()
{
    LinkStack *ls;
    ElemType e;
    InitStack(ls);
    cout<<"";
    if(StackEmpty(ls)==1)
        cout<<""<<endl;
    else
        cout<<" 不空"<<endl;
    cout<<" a进栈"<<endl;Push(ls,'a');
    cout<<" b进栈"<<endl;Push(ls,'b');
    cout<<" c进栈"<<endl;Push(ls,'c');
    cout<<" d进栈"<<endl;Push(ls,'d');
    cout<<"";
    if(StackEmpty(ls)==1)
        cout<<""<<endl;
    else
        cout<<" 不空"<<endl;
    GetTop(ls,e);
    cout<<" 栈顶元素"<<e<<endl;
    cout<<" 出栈次序:";
    while(!StackEmpty(ls))
    {
        Pop(ls,e);
        cout<<e;
    }
    cout<<'\n';
}

关于形参部分,有些不明白的就是,为什么LinkStack后的形参是 *&ls呢?这样是表示ls所指向的next吗?刚刚看了指针部分看了半天,还是晕晕乎乎的
搜索更多相关主题的帖子: 存储 
2011-10-04 16:26
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
收藏
得分:0 
又没有人来啊~~哎。。
2011-10-04 16:48
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
收藏
得分:0 
为什么老是没人鸟我。。。
2011-10-04 17:24
apigboy
Rank: 1
等 级:新手上路
帖 子:35
专家分:4
注 册:2011-10-3
收藏
得分:0 
好伤心啊。。。就是没人理。。。
2011-10-04 17:41
快速回复:栈的链式存储,形参部分有些不明白
数据加载中...
 
   



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

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