数据结构之顺序栈的应用
来源:互联网 发布:mac osx10.13镜像下载 编辑:程序博客网 时间:2024/06/08 16:08
今天看了一下栈的应用,栈分为两种:顺序栈(也就是数组构成的)和链栈(也即是链表构成的),栈为何物我就不罗嗦了,先来介绍一下顺序栈吧
顺序栈的定义
typedef struct{ int stack[max]; int top;}seqstack;seqstack *s;
所谓的顺序栈就是用一个数组作为栈,用一个top 元素作为栈顶,这些都是我们规定的,当然有更好的方法也是可以的
题目:通过顺序栈模拟扑克牌游戏
思路:用随机数生成扑克牌数,再采用类似于桶排序的标记法,用一个数组,发过牌的记为1,还没有的记为0。然后………
代码
#include<stdio.h>#include<time.h>#include<stdlib.h>#define max 100typedef struct { int stack[max]; int top;}seqstack;void stackIn(seqstack *s){ s->top=-1;}int stackNotEmpty(seqstack s){ if(s.top<=-1) return 0; else return 1;}int stackpush(seqstack *s,int x){ if(s->top>=max) { printf("堆栈已满无法插入\n"); return 0; } else { s->top++; s->stack[s->top]=x; return 1; }}int stackpop(seqstack *s,int *d){ if(s->top<=-1) { printf("堆栈数据已空\n"); return 0; } else { *d=s->stack[s->top]; s->top--; return 1; }}int main(){ seqstack stack; int i; time_t t; int y,z; int card[52],pos; stackIn(&stack); if(stackNotEmpty(stack)==0) printf("堆栈为空\n"); else printf("\n栈非空"); srand((unsigned)time(&t)); for(i=0;i<52;i++) card[i]=0; i=0; while(i!=52) { pos=rand()%52; if(card[pos]==0) { stackpush(&stack,pos); card[pos]=1; i++; } } for(i=0;i<5;i++) { stackpop(&stack,&z); printf("[%c%2d]",z/13+3,z%13+1); stackpop(&stack,&z); printf("[%c%2d]",z/13+3,z%13+1); stackpop(&stack,&z); printf("[%c%2d]",z/13+3,z%13+1); printf("\n"); } return 0;}
总结
此次顺序栈的应用,虽然代码比价简短,但是确实一个十分好的例子,当然啦这都要归功于顺序栈相对容易理解一些
阅读全文
0 0
- 数据结构之顺序栈的应用
- SDTU 数据结构之顺序表的应用
- 数据结构之顺序栈
- 数据结构之顺序栈
- 数据结构之顺序栈
- 数据结构之顺序栈
- 数据结构之顺序栈
- 数据结构之顺序栈
- 数据结构之顺序栈
- 数据结构之顺序栈
- 数据结构之顺序栈
- 数据结构之顺序栈
- 数据结构之顺序栈
- 简单数据结构的实现之顺序栈
- 常用数据结构之顺序存储的栈
- 数据结构之 顺序栈的操作
- 【数据结构之顺序栈的基本运算】
- 数据结构之栈的顺序表实现
- linux获取hostname和获取ip
- Android的地图开发环境搭建
- 什么是Apache Zeppelin?
- 登录,从sql server里把数据读出来放到List里,增删改查实现
- iOS 贝塞尔曲线简单使用
- 数据结构之顺序栈的应用
- Android O (8.0) 新特性介绍
- eclipse运行项目报错:Unsupported major.minor version 52.0
- 线程第三章
- osgi框架基础原理与实例一
- win8/8.1改win7原版系统全部教程之先把驱动精灵万能网卡版存到U盘(2)
- 运用spring时出现org.springframework.beans.factory.BeanNotOfRequiredTypeException: 错误
- Django ORM 操作
- NSString为什么要用copy关键字,用strong会有什么问题?