/*
用数组(顺序表)实现栈的常用操作
*/
#include<stdio.h>
#include <stdlib.h>
//定义结构体
typedef struct Node
{
int data[20];
int top;
} SeqStack;
//函数操作声明
void SeqStackInit(SeqStack);//栈的初始化
bool SeqStackInitEmpty(SeqStack);//判断栈是否为空
void SeqStackPush(SeqStack,int);//入栈操作
int SeqStackPop(SeqStack);//出栈操作
int SeqStackGetPop(SeqStack);//取栈顶元素
int main(void)
{
SeqStack s;//声明出结构体变量
SeqStackInit( s);
return 0;
}
//初始化实现
void SeqStackInit(SeqStack s)
{
s.top=-1;//如果空栈 声明-1然后++
}
//判断栈是否为空
bool SeqStackInitEmpty(SeqStack s)
{
if(s.top==-1)
return true;
else
return false;
}
//入栈操作
void SeqStackPush(SeqStack s ,int val)
{
if(20-1==s.top)
{
printf("栈已满");
exit(-1);
}
else
{
s.data[++s.top]=val;
}
}
//出栈操作
int SeqStackPop(SeqStack s)
{
if(SeqStackInitEmpty(s))
{
printf("栈为空");
exit(-1);
}
int val=s.data[s.top];
s.top--;
return val;
}
//取栈顶元素
int SeqStackGetPop(SeqStack s)
{
if(SeqStackInitEmpty(s))
{
printf("空栈");
exit(-1);
}
return s.data[s.top];
}
分享到:
相关推荐
问题:用数组实现一个顺序栈 问题:用链表实现一个链式栈 队列 问题:用数组实现一个顺序队列 问题:用链表实现一个链式队列 问题:实现一个循环队列 递归 问题:编程实现斐波那契数列求值f(n)=f(n-1)+f(n-2) ...
采用java实现,实现了常用的数据结构,包括顺序表、链表、队列、栈(数组实现和链表实现)、二叉树(二叉排序树)、图(深度优先、广度优先)
包含数据结构常用的知识:顺序表(数组实现和链表)、栈和队列的顺序实现和链式实现,二叉树的实现和遍历、常用的排序算法
数组是平时使用最常用的数据结构,在JavaScript中数组是动态的分配大小,在这里我不会介绍JavaScript里面数组的所有的方法,而是针对数据结构这个方向谈谈所用到的方法。 创建和初始化数组 //创建空数组 var array =...
本项目主要使用Java实现各种经典常用数据结构及其算法,包括但不仅限于链表、栈,队列,树,图等经典数据结构,持续更新中... 目前,该项目具体包括如下内容: 单向链表的数据结构及其相关算法:单向链表结构包含两...
顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的。 链式存储的线性表称为链表,链表中的储存元素不一定是连续的,元素节点种存放数据元素以及相邻元素的地址信息。 线性结构常见的有:数组,队列,链表和栈...
链表 (Linked List) 是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链 表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成, 结点可以在运行时动态生
•数组最常用的用法就是访问数组元素,包括对数组元素赋值和访问数组元素的值,访问数组元素是通过在数组引用变 量后紧跟一个方括号([ ]),方括号里是数组元素的索引值。 •Java语言的数组索引是从0开始的,...
Python数据结构:介绍Python中常用的数据结构,包括列表、元组、字典、集合等,以及它们的特点、使用方法、操作等。 3. 算法基础知识:介绍算法的基本概念、分类、特点等内容,包括排序、查找、递归、分治等。 4. ...
8.2.3 索引顺序表的查找 8.3 动态查找表 8.3.1 二叉排序树和二叉平衡树 8.3.2 B-树和B+树 8.4 哈希表及其查找 8.4.1 哈希表与哈希函数 8.4.2 构造哈希函数的常用方法 8.4.3 解决冲突的主要方法 8.5 哈希表...
顺序表的实现静态数组动态数组2.链表的实现二.栈三.队列四.串StringString StringBuffer 和 StringBuilder五.树和二叉树六.哈希表七. 图邻接矩阵邻接表 一.线性表 1.顺序表的实现 静态数组 java只有在为数组分配变量...
串、栈、队列的区分度在于数据的运算和逻辑结构,而他们的存储结构常用的都是顺序表和链表。 广义表和数组都是更抽象的线性表,数组对数据元素要求更严苛,广义表则是放开了数据元素的限定。他们都可以是递归定义,...
10.4.2 使用字符串指针变量与字符数组的区别 158 10.5 函数指针变量 159 10.6 指针型函数 160 10.7 指针数组和指向指针的指针 161 10.7.1 指针数组的概念 161 10.7.2 指向指针的指针 164 10.7.3 main 函数的参数 166...
10.4.2 使用字符串指针变量与字符数组的区别 158 10.5 函数指针变量 159 10.6 指针型函数 160 10.7 指针数组和指向指针的指针 161 10.7.1 指针数组的概念 161 10.7.2 指向指针的指针 164 10.7.3 main 函数的参数 166...
· 顺序表 · 链表 · 图 · 哈希表 · 队列 · 查找和排序算法 · 栈 · C语言的实现 · 树 嵌入式Linux项目开发流程 · Linux开发环境搭建 · 项目开发流程 · 产品需求分析和选型 · 硬件平台 · 驱动开发 · ...
第四节 顺序表和链表的比较 第三章 栈和队列 第一节 栈 第二节 栈的应用举例 第三节 队列 第四节 栈和队列的应用举例 第四章 多维数组和广义表 第一节 多维数组和运算 第二节 矩阵的压缩存储(默认按行优先存储) 第...
使用场合:任意数字与1做按位与操作,可以判断奇偶性,结果为1,则为奇数,否则为偶数 0 :0 1 :1 2 :10 3 :11 4 :100 5 :101 5 & 1 101 001 ========== 001 4 & 1 100 001 ==== 000 2、按...
栈也可以用链表实现,链式存储结构的栈简称链栈。若同时需两个以上的栈,则最好采用这种结构。对于栈上的操作,总结如下,大家可以仔细看一下这些程序,一个大的程序都是由一些对数据结构的小的操作组成的。 顺序...
16_友元函数实现操作符重载知识总结 17_重载等号操作符_传智扫地僧 18_数组类小案例_操作符重载需求 19_数组类小案例_重载[]_传智扫地僧 20_数组类小案例_重载等号_传智扫地僧 21_数组类小案例_重载==和!= 22_作业 ...