zoukankan
html css js c++ java
顺序栈的C语言实现
//
程 式 名: LinkStack.c
//
程式功能: 链栈的实现
//
功能描述: 置栈空、判栈空、压栈、出栈、取栈顶元素
#include
<
stdio.h
>
#include
<
stdlib.h
>
//
包含exit();
typedef
char
DataType;
//
假定数据类型为字符
typedef
struct
stacknode
{
DataType data;
struct
stacknode
*
next;
}
StackNode;
typedef
struct
{
StackNode
*
top;
//
栈顶指针
}
LinkStack;
//
置栈空
void
Initial(LinkStack
*
s)
{
s
->
top
=
0
;
}
//
判栈空
int
IsEmpty(LinkStack
*
s)
{
return
s
->
top
==
0
;
}
//
压栈
void
Push(LinkStack
*
s, DataType x)
{
//
将元素x插入链栈头部
StackNode
*
p
=
(StackNode
*
)malloc(
sizeof
(StackNode));
p
->
data
=
x;
p
->
next
=
s
->
top;
s
->
top
=
p;
}
//
出栈
DataType Pop(LinkStack
*
s)
{
DataType x;
StackNode
*
p
=
s
->
top;
if
(IsEmpty(s))
{
printf(
"
栈为空\n
"
);
exit(
1
);
}
x
=
p
->
data;
s
->
top
=
p
->
next;
free(p);
return
x;
}
//
取栈顶元素
DataType Top(LinkStack
*
s)
{
if
(IsEmpty(s))
{
printf(
"
栈为空\n
"
);
exit(
1
);
}
return
s
->
top
->
data;
}
void
main()
{
LinkStack s;
DataType first,sec;
Initial(
&
s);
Push(
&
s,
'
a
'
);
Push(
&
s,
'
b
'
);
first
=
Top(
&
s);
Pop(
&
s);
sec
=
Top(
&
s);
printf(
"
%c,%c\n
"
, first, sec);
}
查看全文
相关阅读:
word批量打印工具,c#写的
word添加页眉脚和设置各页不同的页眉页脚.
打印机双面打印
ORACLE OCP认证
基于.net程序,使用cefsharp开发的打开网页工具,如何不加载图片
在iis上运行的服务器端程序,运行一段时间后,访问都只出现一行乱码,回收进程池后又好了,求大神回复
ArcGis API for JavaScript 开发笔记一 加载地图
修改现有消息类让.net core项目支持Protobuf
结合现有分布式系统的数据一致性思考
让现有vue前端项目快速支持多语言
原文地址:https://www.cnblogs.com/zhangyin/p/587552.html
最新文章
取消win10 任务栏已固定的软件
安装yii2 需要token 记录
【转】去掉Sqlite3 数据库中的前后回车换行符(newline)
mysql load data 乱码的问题
MySQL Workbench “Error Code: 1175” 的解决方法
(转)关于URLDownloadToFile下载文件
mssql2000 身份证号码验证
删除字符串中非字符
DataSet读取数据
mssql分页存储过程
热门文章
常用的几个DOS批处理
基数排序 java 实现
归并排序算法 java 实现
快速排序算法 java 实现
堆排序算法 java 实现
Excel中的规划求解。
VS Code + Anaconda打造舒适的Python环境
利用委托进行窗体传值。
ADO.NET数据库控件
Excel中多条件查找
Copyright © 2011-2022 走看看