| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:求高手教一下栈怎么应用的。。。。。。
只看楼主 加入收藏
ccmike98
Rank: 2
来 自:苏州
等 级:论坛游民
帖 子:76
专家分:56
注 册:2010-7-13
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:7 
求高手教一下栈怎么应用的。。。。。。
我们离散数学的实验,求一个逻辑表达式的真值表。
里面会用到栈,但是我对栈不是很了解,
希望有人教一下,然后举几个例子,说明怎么用的,
说一下关于栈的函数。

急需,谢谢
搜索更多相关主题的帖子: 应用 
2010-10-22 22:25
outsider_scu
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:430
专家分:1333
注 册:2010-10-21
收藏
得分:0 
栈就是一个一端封闭的容器。按照先进后出的原则,用来保存数据用。就像是洗盘子一样,最先洗完的盘子落在最下面,最后洗完的盘子放在最上面,所以最先用。
可以用数组实现栈。

编程的道路上何其孤独!
2010-10-22 23:00
outsider_scu
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:430
专家分:1333
注 册:2010-10-21
收藏
得分:0 
如果用C++的话,里面有STL关于栈的标准模板可以用。

编程的道路上何其孤独!
2010-10-22 23:01
cacker
该用户已被删除
收藏
得分:1 
提示: 作者被禁止或删除 内容自动屏蔽
2010-10-22 23:20
ccmike98
Rank: 2
来 自:苏州
等 级:论坛游民
帖 子:76
专家分:56
注 册:2010-7-13
收藏
得分:0 
有没有,关于栈的什么函数,教我怎么用
2010-10-23 10:28
outsider_scu
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:430
专家分:1333
注 册:2010-10-21
收藏
得分:0 
回复 5楼 ccmike98
c++里面有,C里面的需要自己定义。

编程的道路上何其孤独!
2010-10-23 12:39
outsider_scu
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:3
帖 子:430
专家分:1333
注 册:2010-10-21
收藏
得分:19 
程序代码:
#include<stdio.h>
#include<stdlib.h>
typedef int DataType;
typedef struct node
{
    DataType data;
    struct node *next;
}StackNode,*PStackNode;  /*栈的节点类型定义*/
typedef struct{
    PStackNode top;
}LinkStack,*PLinkStack;   /*栈的定义*/
/*------------------------------------------------------------------------------*/
/*初始化空栈*/
PLinkStack Ini_LinkStack(void)
{   /*初始化空栈,返回链栈指针,null表示初始化失败*/
    PLinkStack S;
    S=(PLinkStack)malloc(sizeof(LinkStack));
    if(S) S->top=NULL;
    return (S);
}
/*------------------------------------------------------------------------------*/
/*判断栈空*/
int Empty_LinkStack(PLinkStack S)
{  /* 判断栈是否为空*/
    return (S->top==NULL);
}
/*------------------------------------------------------------------------------*/
/*入栈*/
int Push_LinkStack(PLinkStack S,DataType x)
{  /*进栈,入口参数:链栈指针,进栈元素,返回值:1成功,0失败*/
    PStackNode p;
    p=(PStackNode)malloc(sizeof(StackNode));
    if(!p)
    {
        printf("内存溢出!");
        return 0;
    }
    p->data=x;
    p->next=S->top;
    S->top=p;
    return 1;
}
/*------------------------------------------------------------------------------*/
/*出栈*/
int Pop_LinkStack(PLinkStack S,DataType *x)
{  /*出栈,返回值:1表示成功0表示失败,*x保存被删除的元素*/
    PStackNode p;
    if(Empty_LinkStack(S))
    {
       printf("栈空不能出栈\n");
       return 0;
    }
    *x=S->top->data;
    p=S->top;
    S->top=S->top->next;
    free(p);
    return 1;
}
/*------------------------------------------------------------------------------*/
/*取栈顶元素*/
int GetTop_LinkStack(PLinkStack S,DataType *x)
{   /*得到栈顶元素,入口参数:链栈指针,出栈元素存放空间地址*/
    if(Empty_LinkStack(S))
    {
        printf("栈空\n");
        return 0;
    }
    *x=S->top->data;
    return 1;
}
/*------------------------------------------------------------------------------*/
/*销毁栈*/
void Destroy_LinkStack(PLinkStack *LS)
{   /*销毁栈,入口参数,要销毁的链栈指针地址*/
    PStackNode p,q;
    if(*LS)
    {
        p=(*LS)->top;
        while(p)
        {
            q=p;
            p=p->next;
            free(q);
        }
        free(*LS);
    }
    *LS=NULL;
    return ;
}
/*------------------------------------------------------------------------------*/
/*显示栈*/
void Display_LinkStack(PLinkStack S)
{
    DataType x;
    while(S->top)
    {
        printf("%d\t",S->top->data);
        Pop_LinkStack(S,&x);
    }
}
/*------------------------------------------------------------------------------*/
这是我以前写的链表栈。希望对你有帮助。            

编程的道路上何其孤独!
2010-10-23 12:58
ccmike98
Rank: 2
来 自:苏州
等 级:论坛游民
帖 子:76
专家分:56
注 册:2010-7-13
收藏
得分:0 
回复 7楼 outsider_scu
很有帮助谢谢
2010-10-23 20:06
快速回复:求高手教一下栈怎么应用的。。。。。。
数据加载中...
 
   



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

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