网站首页 > 技术文章 正文
持续分享嵌入式技术,操作系统,算法,c语言/python等,欢迎小友关注支持
上篇文章我们介绍了栈的定义以及顺序栈的相关知识点,大家知道顺序栈跟顺序表很类似,那么链式栈是不是跟链表很类似呢,答案是yes!
链式栈的定义
链式栈:采用链接存储的栈结构
栈的链式存储结构实际上就是一个单链表,叫做链栈。插入和删除操作只能在链栈的栈顶进行;栈顶指针Top就是链表的头指针。
我们把链表的head结点当成是栈顶指针,下面两张图就是两者的区别。


从上图我们可以看出栈链的数据都是只能在栈顶结点插入的。
链式栈的相关操作
数据结构如下
typedef int datatype;
typedef struct node
{
datatype info;
struct node *next;
}linknode;
typedef linknode * linkstack;
linkstack top;
取得链式栈的栈顶结点
datatype read(linkstack top)
{
if(!top) {
printf("\n链式栈是空的!");
exit(1);}
return (top->info);
}
向链式栈中插入一个值为x的结点
linkstack push(linkstack top,datatype x)
{
linkstack p;
p=(linkstack )malloc(sizeof(linknode));
p->info=x;
p->next=top;
top=p;
return top;
}
删除栈顶元素
linkstack pop (linkstack top)
{
linkstack p;
if (top==NULL){
printf("\n顺序栈是空的!\n");
return top;
}
p=top;
top=top->next;
free(p);
return top;
}
顺序栈和链栈的比较
时间性能:相同,都是常数时间O(1)。
空间性能:
- 顺序栈:有元素个数的限制和空间浪费的问题。
- 链栈:没有栈满的问题,只有当内存没有可用空间时才会出现栈满,但是每个元素都需要一个指针域,从而产生了结构性开销。
总之,当栈的使用过程中元素个数变化较大时,用链栈是适宜的,反之,应该采用顺序栈。
好了,以上就是链式栈的相关介绍,本章内容就介绍到这里,下一讲我们来讲解一下对列的相关知识点。
如果觉得这篇文章对你有帮助,请点赞关注下。如有错误欢迎指正
- 上一篇: Python包管理器的未来,Rust实现!
- 下一篇: 栈的应用:表达式转换
猜你喜欢
- 2024-12-19 栈的应用:表达式转换
- 2024-12-19 Python包管理器的未来,Rust实现!
- 2024-12-19 深入解析 Python 断点调试:用好工具,高效定位问题!
- 05-25Python 3.14 t-string 要来了,它与 f-string 有何不同?
- 05-25Python基础元素语法总结
- 05-25Python中的变量是什么东西?
- 05-25新手常见的python报错及解决方案
- 05-2511-Python变量
- 05-2510个每个人都是需要知道Python问题
- 05-25Python编程:轻松掌握函数定义、类型及其参数传递方式
- 05-25Python基础语法
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 90℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 81℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)