| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 672 人关注过本帖
标题:求一个用C语言写的关于栈的基本操作的代码。
只看楼主 加入收藏
Ially1008
Rank: 2
等 级:论坛游民
帖 子:5
专家分:30
注 册:2012-3-29
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:3 
求一个用C语言写的关于栈的基本操作的代码。
要用链栈,顺序栈我会的,谢谢。。(不是交作业用的哟,是自己要找一段代码弄懂什么是链栈),谢谢。。
搜索更多相关主题的帖子: C语言 
2012-03-29 19:48
爱德华
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:183
专家分:536
注 册:2011-5-29
收藏
得分:5 
根据具体要求定义一个结构体数组    反复申请存储空间    建立多个节点     

算法,数据结构,windows核心编程.
2012-03-30 13:58
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:15 
程序代码:
     1    #include <stdio.h>
     2    #include <stdlib.h>
     3
     4    typedef int elem_type;
     5    typedef struct _stack
     6    {
     7        elem_type elem;
     8        struct _stack *next;
     9    }stack, *pstack;
    10
    11    int is_empty(pstack nstack)
    12    {
    13        if (NULL == nstack)
    14        {
    15            return 0;
    16        }
    17
    18        return -1;
    19    }
    20
    21    pstack get_top(pstack nstack)
    22    {
    23        if (0 == is_empty(nstack))
    24        {
    25            //print msg error
    26            return NULL;
    27        }
    28
    29        return nstack;
    30    }
    31
    32    int pop(pstack *nstack)
    33    {
    34        if (0 == is_empty(*nstack))
    35        {
    36            //print msg error
    37            return -1;//failed
    38        }
    39        pstack ntmp = *nstack;
    40        *nstack = (*nstack)->next;
    41        free(ntmp); ntmp = NULL;
    42
    43        return 0;//success
    44    }
    45
    46    int push(pstack *nstack, elem_type nelem)
    47    {
    48        pstack ntmp = (pstack) malloc (sizeof(stack));
    49
    50        if (NULL == ntmp)
    51        {
    52            return -1;//failed
    53        }
    54
    55        ntmp->elem = nelem;
    56        ntmp->next = *nstack;
    57        *nstack = ntmp;
    58
    59        return 0;//success
    60    }
    61
    62    int main(void)
    63    {
    64        pstack nstack=NULL, ntmp;
    65        int i;
    66
    67        for (i=0; i<10; ++i)
    68        {
    69            push(&nstack, i);
    70        }
    71
    72        while (0 != is_empty(nstack))
    73        {
    74            ntmp = get_top(nstack);
    75            printf ("%d\n", ntmp->elem);
    76            pop(&nstack);
    77        }
    78
    79        return 0;
    80    }
2012-03-30 14:32
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
知道怎么操作  应该就可以
2012-03-30 14:34
快速回复:求一个用C语言写的关于栈的基本操作的代码。
数据加载中...
 
   



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

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