C语言实现堆栈

原创 2018年04月14日 23:27:39
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAXSIZE 128
typedef int elementType;

typedef struct{
	elementType data[MAXSIZE];
	int top;
}Stack;

int InitStack(Stack **stack){
	
	*stack = (Stack*)malloc(sizeof(Stack));
	if(*stack == NULL)
		return -1;
	(*stack)->top = -1;
	
	return 0;
}

int PushStack(Stack* stack, elementType in){
	if(stack->top == MAXSIZE-1){ //栈满
		return -1;
	}
	stack->top++;
	stack->data[stack->top] = in;
	return 0;
}

int PopStack(Stack* stack, elementType* out){
	if(stack->top == -1){ //空栈 
		return -1;
	}
	*out = stack->data[stack->top];
	stack->top--;
	return 0;
}

int main(void)
{
	int i = 0, ret = 0;
	elementType out;
	Stack *stack;
	
	ret = InitStack(&stack);
	if(ret == -1) {
		printf("InitStack failed!\n");
	}
	for(; i < 10; i++) {
		PushStack(stack, i);
	}

	while(stack->top != -1) {
		PopStack(stack, &out);
		printf("%d\t", out);
	}
	
	return 0;
}

自己用C语言写的简单计算器,用堆栈实现

  • 2014年10月30日 13:34
  • 8KB
  • 下载

链式堆栈_C语言实现

链式栈具有存储灵活,没存利用率高的特点,今天采用c语言实现链式堆栈。栈的主体采用单链表的方式实现,链表不带头结点。为了方便知道栈的栈底和栈顶,需要定义两个分别指向链表的头和尾的指针top,base。链...
  • shuoyueqishilove
  • shuoyueqishilove
  • 2017-01-18 18:54:37
  • 924

C语言堆栈的区别

C语言中堆和栈的区别 一.前言: C语言程序经过编译连接后形成编译、连接后形成的二进制映像文件由栈,堆,数据段(由三部分部分组成:只读数据段,已经初始化读写数据段,未初始化数据段即BBS)和代...
  • zorelemn
  • zorelemn
  • 2016-09-17 22:55:08
  • 3428

C语言实现堆栈(栈)的数据结构

#include #include #include #define elemtype intstruct Node{ elemtype data; struct Node *next;};struc...
  • dominionwu
  • dominionwu
  • 2008-01-25 14:12:00
  • 574

C语言函数堆栈结构

     Indirect addressing Function parameter 3 ...
  • liliang365
  • liliang365
  • 2014-05-22 13:09:58
  • 409

用C语言的堆栈实现LRU算法

  • 2010年01月07日 18:17
  • 169KB
  • 下载

C语言堆栈写的四则运算源码

  • 2011年08月28日 16:16
  • 6KB
  • 下载

C语言下程序的堆栈调用(详细,图示)

以前接触程序时,只知道程序写的对,一般都能运行出来,但是却不知道程序是怎么一步一步将每一步编译链接起来的,今天我们用汇编来看一下程序到底是怎么在程序中运行的。...
  • prokgtfy9n18
  • prokgtfy9n18
  • 2017-04-18 19:10:48
  • 671

使用C语言与栈实现简单多则运算计算器(包括括号优先级运算)

#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt; #define MAX 20 //定义第一个栈---作为存放运算...
  • HookJony
  • HookJony
  • 2016-06-24 15:36:02
  • 5420

C语言栈实现表达式计算器

栈实现计算器 黑色印记 前段时间利用栈写了一个实现了计算器功能的程序。觉得有意思的,因此今天在这了和大家分享一番。 首先,要写出计算器,你要按照以下几点去写,才能保证运算的优先级不发...
  • zwt0112
  • zwt0112
  • 2017-01-15 15:52:40
  • 3906
收藏助手
不良信息举报
您举报文章:C语言实现堆栈
举报原因:
原因补充:

(最多只允许输入30个字)