LIFO栈 ADT接口 链表实现
LIFO 链栈结构
typedef int ElemType;
struct node{
ElemType data;
struct node* next;
};
typedef struct node* Stack;
LIFO 链栈基本操作
//LIFO 链栈初始化
void InitStack(Stack top){
top = NULL;
} //LIFO 链栈判断栈空
boolean StackKEmpty(Stack top){
if(top == NULL) return true;
else return false;
} //LIFO 链栈进栈
void Push(Stack top, ElemType x){
LinkedStack p;
p = malloc(sizeof *p);
p -> data =x;
p -> next = top;
top = p;
} //LIFO 链栈出栈
ElemType Pop(Stack top){
LinkedStack p;
ElemType x;
if(top == NULL){
printf("栈下溢错误!\n");
exit();
}
p = top;
x = p -> data;
top = top -> next;
free(p);
return x;
} //LIFO 链栈读取栈顶
ElemType GetTop(Stack top){
if(top == NULL){
printf("栈下溢错误! \n");
exit();
}
return top -> data;
}
LIFO栈 ADT接口 链表实现的更多相关文章
- LIFO栈 ADT接口 实现十进制转其他进制
LIFO 接口 Stack.h //LIFO 链栈初始化 void InitStack(Stack top){ //LIFO 链栈判断栈空 boolean StackKEmpty(Stack top) ...
- LIFO栈 ADT接口 数组实现
LIFO 栈结构 typedef int ElemenType; struct seqStack{ ElemeType data[MaxSize]; int top; }; typedef struc ...
- 栈ADT的链表实现
/* 栈ADT链表实现的类型声明 */ struct Node; typedef struct Ndoe *PtrToNode; typedef PtrToNode Stack; struct Nod ...
- 双端队列 ADT接口 链表实现
Deque ADT接口 DEQUEUE.h: #include <stdlib.h> #include "Item.h" typedef struct DEQUEUEn ...
- FIFO队列 ADT接口 链表实现
FIFO.h (接口) #include "Item.h" void QUEUinit(int); int QUEUempty(void); void QUEUput(Item); ...
- 《数据结构与算法分析》学习笔记(四)——栈ADT
一.栈ADT是what? 1.定义 栈,是限制插入和删除都只能在一个位置上进行的表. 2.图示 3.栈的基本功能 (1)是否为空 (2)进栈 (3)出栈 (4)清空 (5)取栈顶 二.栈的链表实现 # ...
- 【ADT】链表的基本C语言实现
什么是抽象数据类型?首先,这一概念是软件开发人员在力求编写的代码健壮.易维护且可以复用的过程中产生的.英文是AbstractData Type.有人将其比作"抽象"的墙壁,&quo ...
- ②泡茶看<数据结构>,喜欢看源码-栈ADT
前言 听着天籁,我是个音乐迷.时间充实着,会过得很快.我马上也可以到傍晚的时候去乐室吹我心爱的萨克斯. 嘟嘟嘟... 我会吹一首简单的歌咯,哈哈我想到了一个神奇的比喻,待会说. 栈ADT模型(又称LI ...
- C语言 - 栈和单链表的实现
单链表:linkList.h linkList.c #ifndef LINKLIST_H_INCLUDE #define LINKLIST_H_INCLUDE #include <Windows ...
随机推荐
- C# 多维数组 交错数组的区别,即 [ , ] 与 [ ][ ]的区别
多维数组的声明 在声明时,必须指定数组的长度,格式为 type [lenght ,lenght ,lengh, ... ] int [,] test1 = new int [3,3]; 或声明时即赋值 ...
- redis-day1
1 Redis 概述 REmote DIctionary Server(Redis)是一个基于key-value键值对的持久化数据库存储系统.redis和大名鼎鼎的Memcached缓存服务软件很像, ...
- [BZOJ 1592] Making The Grade路面修整
1592: [Usaco2008 Feb]Making the Grade 路面修整 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 704 Solv ...
- 软工团队 - 预则立&&他山之石
软工团队 - 预则立&&他山之石 团队任务计划 时间 人员 任务 10.23-10.29 张昭锡 初拟Android代码规范 李永盛 初拟PHP代码规范 刘晨瑶 初拟Git代码规范 刘 ...
- Join的加强版CountDownLatch
CountDownLatch允许一个或多个线程等待其他线程完成操作. 假如有这样一个需求:我们需要解析一个Excel里多个sheet的数据,此时可以考虑使用多线程,每个线程解析一个sheet里的数据, ...
- Java的Calendar类
通过Date类我们可以创建并格式化一个日期对象,但是如何才能设置和获取日期数据的特定部分呢?----Calendar类 Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,通过getIn ...
- 死磕salt系列-salt入门
saltstack简介 SaltStack是一种新型的基础设施管理软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltStack提供了一个动态基础 ...
- python学习day25 正则表达式
4.30-25 正则表达式与re模块 re模块本身是用来操作正则表达式,与正则本身没有关系 正则表达式是指一规则,匹配字符串的规则 1.正则表达式regex 正则表达式regex是指一规则,匹配字符串 ...
- vue-scroll 底部无数据时,底部出现大片的空白
vue-scroll放在vue的项目中,实现下拉刷新的效果,但是发现,不能上拉的bug,上拉了之后,底部出现了一大段的空白,参照GitHub的问题,算是暂时解决了. 不能上拉的原因是:滑动标签里边的内 ...
- jquery mobile各类标签的refresh
JQM里面当我们更新了某些页面标签(如: listview, radiobuttons, checkboxes, select menus)里的数据时,必须做refresh操作. 为什么必须做refr ...