学习Linux C编程之栈
来源:互联网 发布:nba总决赛数据2016 编辑:程序博客网 时间:2024/05/22 00:20
栈是限制在一段进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素称为“空栈”。特点:先进后出(FILO)。
栈顶即top,这里top有两种定义方式:
1、满栈(Full Stack),top指向最后一个使用的空间;
2、空栈(Empty Stack),top指向下一个可用的空间;
栈也是线性表,所以也分顺序存储和链式存储:
一、顺序存储
栈是顺序表的一种,具有顺序表同样的存储结构,由数组定义,配合用数组下表表示的栈顶指针top(相对指针)完成各种操作。
如图,我们可以看到,栈的顺序存储与顺序表的区别,顺序表数组大小是固定的,这样限制了我们的后期修改,而栈的顺序存储将数据域单独开辟了一片空间才存放,大小为maxlen*sizeof(data_t), 下面是栈的基本运算:
1、创建栈
2、摧毁一个栈
3、清空一个栈
4、判断栈是否为空
5、判断栈是否为满
6、进栈
7、出栈
8、取栈顶元素
阅读全文
0 0
- 学习Linux C编程之栈
- Linux+C学习笔记之IO编程
- Linux+C学习笔记之网络编程
- 学习Linux C编程之数据类型
- 学习Linux C编程之语句
- 学习Linux C编程之函数
- 学习Linux C编程之线性表
- 学习Linux C编程之文件操作
- 学习Linux C编程之操作系统基础训练
- 学习Linux C编程之进程控制编程
- 学习Linux C编程之网络编程(一)
- 嵌入式linux学习笔记之c编程基础
- linux c/c++ 编程之-----操作系统原理学习笔记
- linux C编程学习之线程(二)
- linux之C编程学习——进程,进程,进程!
- linux之C编程学习——进程,进程,进程!
- 学习Linux C编程之运算符、表达式
- 学习Linux C编程之语句 问题-break和continue
- git-修改远程的URL
- C++11新特性学习笔记—noexcept关键字
- 活动安排问题-贪心算法
- 修复 Ubuntu 中“Unable to lock the administration directory (/var/lib/dpkg/)”
- 多线程CreateThread与_beginthreadex本质区别
- 学习Linux C编程之栈
- JSP与HTML的区别
- hex转换成rgb
- Python 学习笔记
- mycat异机多库分表
- java native方法及JNI实例
- php 数组转json,json转数组 json_encode json_decode 失败
- 25个最基本的JavaScript面试问题及答案
- AMD-SDK的学习[6]---BlackScholes与BlackScholesDP