堆栈的实现
来源:互联网 发布:抢单app源码 编辑:程序博客网 时间:2024/05/17 08:00
堆栈
后进先出
基本的操作有:push(入堆) pop(弹出)
入堆:将数据放入到堆栈的顶部
不过这种也是预先分配好内存,只不过先分配结构体的内存,然后分配结构体内部Array的内存。
后进先出
基本的操作有:push(入堆) pop(弹出)
入堆:将数据放入到堆栈的顶部
弹出:将顶端的数据输
#include<stdio.h>#include <stdio.h>#include <stdlib.h>typedef struct Stk{ int Array[10]; int Top;} Stack;int stack_empty(Stack *Stack1){ if(Stack1->Top==0) { return 1; } else { return 0; }}void push(Stack *Stack1,int x){ Stack1->Top=Stack1->Top+1; Stack1->Array[Stack1->Top]=x; }int pop(Stack *Stack1){ if(stack_empty(Stack1)) { printf("underflow"); } else { Stack1->Top=Stack1->Top-1; return Stack1->Array[Stack1->Top+1]; }}int main(){ Stack *Stack1=(Stack *)malloc(sizeof(Stack)); Stack1->Top=0; push(Stack1,3); push(Stack1,4); push(Stack1,1); push(Stack1,10); printf("%d ",pop(Stack1)); printf("%d ",pop(Stack1)); printf("%d ",pop(Stack1));}
如果不想用数组预先分配好内存空间,Stack 结构体内用×Array指针来表示
可以更改一下代码:“
#define N 10typedef struct Stk{ int *Array; int Top;} Stack;
int main(){ Stack *Stack1=(Stack *)malloc(sizeof(Stack)); Stack1->Array = (int *)malloc(sizeof(int) * N); Stack1->Top=0; push(Stack1,3); push(Stack1,4); push(Stack1,1); push(Stack1,10); printf("%d ",pop(Stack1)); printf("%d ",pop(Stack1)); printf("%d ",pop(Stack1));}
不过这种也是预先分配好内存,只不过先分配结构体的内存,然后分配结构体内部Array的内存。
0 0
- 堆栈的C实现
- 堆栈数据结构的实现~
- 链式实现的堆栈
- 堆栈,队列的实现
- 堆栈的c++实现
- SPFA的堆栈实现
- 堆栈的实现
- 堆栈的简单实现
- VB堆栈的实现
- 数据结构--堆栈的实现
- 堆栈的数组实现
- 堆栈的实现
- 链式堆栈的实现
- 堆栈的实现
- 堆栈的实现
- 堆栈的实现
- 堆栈的实现
- 堆栈的数组实现
- webservice笔记
- HTTP协议_取消自动重定向并获取返回301|302回应头
- M$pszi$y是什么意思?-3
- 计算机视觉常用资源整理
- 不定长数组:vector
- 堆栈的实现
- cocos2dx android fopen读取文件失败
- Linux系统CPU优化之irqbalance
- __bridge,__bridge_transfer和__bridge_retained的使用和区别【转载】
- 健康新概念
- Android自定义dialog
- Android系统日期时间的获取
- 常用的正则表达式归纳—JavaScript正则表达式
- 第十七周项目6学生成绩统计