线性表实现栈的操作

简介:

参考自:http://blog.csdn.net/u010187139/article/details/46673163

源码下载:http://pan.baidu.com/s/1bnFIEGv

复制代码
//
//  main.c
//  LineStackDemo
//
//  Created by zhanggui on 15/8/12.
//  Copyright (c) 2015年 zhanggui. All rights reserved.
//

#include <stdio.h>
#define MAXSIZE 20
#define ERROR 0
#define OK 1
typedef int  Status;
typedef int SelemType;

//定义一个结构体类型
typedef struct
{
    SelemType data[MAXSIZE];
    int top;
} SqStack;
//入栈
Status push(SqStack *s,SelemType e)
{
    //判断是否栈满
    if (s->top==MAXSIZE-1) {
        return ERROR;
    }
    s->top++;
    s->data[s->top] = e;
    return OK;
}
//出栈
Status pop(SqStack *s,SelemType *e)
{
    if (s->top==-1) {
        return ERROR;
    }
    *e = s->data[s->top];
    s->top--;
    return OK;
}
//初始化
Status initStack(SqStack *s)
{
    s->top=-1;
    return OK;
}
//输出栈中的所有元素
void stackTraverse(SqStack s)
{
    if (s.top==-1) {
        printf("栈中无元素");
    }else
    {
        while (s.top!=-1) {
            printf("%d ",s.data[s.top]);
            s.top--;
        }
        printf("\n");
    }
    
}
//创建
void createStack(SqStack *s)
{
    if (s->top!=MAXSIZE-1) {
        int i;
        for(i=0;i<MAXSIZE-4;i++)
        {
            push(s, 4);
        }
    }
}
int main(int argc, const char * argv[]) {
   
    SqStack s;
    SelemType e;
    initStack(&s);
    createStack(&s);
    if (s.top!=-1) {
        pop(&s, &e);
    }
    stackTraverse(s);
    
    
    return 0;
}
复制代码
相关文章
|
11天前
|
消息中间件 存储 搜索推荐
深入理解栈和队列(二):队列
深入理解栈和队列(二):队列
29 0
|
1月前
【栈】数据结构栈的实现
【栈】数据结构栈的实现
|
1月前
|
存储
数据结构--栈和队列
数据结构--栈和队列
|
1月前
|
存储 算法 数据处理
数据结构从入门到精通——栈
栈,作为一种后进先出(LIFO)的数据结构,在计算机科学中扮演着重要的角色。它的特性使得它在处理函数调用、括号匹配、表达式求值等问题时具有得天独厚的优势。然而,如果我们跳出传统思维的束缚,会发现栈的用途远不止于此。
49 0
|
1月前
|
C语言
数据结构之栈详解(C语言手撕)
数据结构之栈详解(C语言手撕)
35 1
|
1月前
|
存储 算法
数据结构— —栈的基本操作(顺序栈和链栈)
数据结构— —栈的基本操作(顺序栈和链栈)
56 0
|
1月前
数据结构界的三大幻神----栈
数据结构界的三大幻神----栈
|
2月前
|
存储
栈和队列OJ题
栈和队列OJ题
23 0
|
1月前
|
Python
Python实现数据结构(如:链表、栈、队列等)。
Python实现数据结构(如:链表、栈、队列等)。
33 0

热门文章

最新文章