数据结构学习笔记——栈(1)定义理解
写在前面的话——努力不晚
博主是某985学校数字媒体技术专业的本科在读生,即将成为大四狗,今后打算国内读研。
因为数媒专业设置的缘故,前两年尝试了很多艺术和设计方面的东西:素描、设计原理、UI、视频剪辑等等,但身在软件学院,又接触了很多和软件工程相关的专业课,可以说方向很多,但是让人眼花缭乱。
我记得大二下学期的三维建模(理论课,很多是数学的东西)课上老师问我们有多少人喜爱编程,当时20多个人的班上就2、3个人举手,我并没有举手。老师看到后很感叹,因为院里面数媒作为一个交叉专业,很容易让这个阶段的本科生纠结。大一大二的很多基础课里,老师把我们作为一个比较特殊(编程较弱)的团体,很多软工的课程设计、实训我们都没有,所以编程锻炼很少。(所幸我的后一届开始已经加上这些课设和实训)
随着到了大三,和软工的分界更为明显,学习了专属专业课:计算机动画、3ds max建模、Maya建模、曲线曲面造型、游戏制作(理论、写文档和unity实践)、虚拟现实、OpenGL等。对行业了解更多,也更充分感受到编程的重要性;在学习曲线曲面造型(用C和OpenGL)以及游戏制作实训(unity 3D)后,发现自己原来对编程没有那么讨厌,甚至很有成就感。这让我反思到之前也许只是一味回避,没有去尝试,自然也咀嚼不出甘甜。
在这个时间节点,不论是面对即将来临的保研、考研、面试,亦或是将来的研究生学习和就业,编程的基础都是我需要从头捡起来的。前段时间发现阅读程序的时候要去查很多语法和用法,从头理解,让我觉得大一的时候没有把C语言和数据结构的基础打牢非常遗憾。但是一味消沉并不是我的作风,行动起来才是关键。希望能通过这些总结让自己的知识体系更牢固,也欢迎各位的交流和指教。
2017年8月3日
栈
1、何为“栈”
武汉有一条著名的美食小吃街叫做“户部巷”,天天人流如织,蔡林记的热干面、四季美的汤包、三鲜豆皮等小吃让人流连忘返。户部巷里有一栋古老的建筑叫做“祥盛堆栈”,是早些时候在码头做生意的人用来堆放货物的地方。堆栈的出现为生意人节省了空间、带来了方便,通常人们堆放物品的时候总是习惯把耐压的大件放在下面,易碎的小件放在上面;堆栈中的物品大多都是货物,因此得轻拿轻放,为了防止货物摔落,得一件件从上拿起,最底下的货物得等所有头上的货物搬开后才能搬走。
2、栈的定义
堆栈在现实生活中是一种很常用的行为,在计算机语言中,也把堆栈称为栈,它的定义是:一种限定仅在表尾进行插入或删除操作的线性表。把句子进行提炼,“堆栈是一种限定操作的线性表”,也就是说其本质还是线性表,那么它就自然地继承了线性表的性质。
通常把线性表的特点概括为以下四点:
1)有惟一的首元素。这个首元素只是被称作“第一个”,且只是相对整个线性表而言。
2)有惟一的尾元素。同样尾部也只是一个元素。
3)除首元素外,每个元素只有一个前驱。
4)除尾元素外,每个元素只有一个后继。
3、栈的运作方式
4、使用堆栈的意义
数据结构学习笔记——栈(1)定义理解相关推荐
- Python数据结构学习笔记——栈
目录 一.栈的定义和特性 (一)栈的定义 (二)栈的反转特性 二.实现分析步骤 三.栈的Python实现代码 四.栈的应用 (一)匹配圆括号 (二)匹配符号 (三)模2除法(十进制转二进制) (四)进 ...
- 数据结构学习笔记——栈和队列
4 栈与队列 栈是限定仅在表尾进行插入和删除操作的线性表.队列是只允许在一端进行插入操作.而在另一端进行删除操作的线性表. 4.1 栈的定义 栈(stack)是限定仅在表尾进行插入和删除操作的线性 ...
- 数据结构学习笔记——栈的基本知识和顺序存储结构实现栈(顺序栈)
目录 一.栈 (一)栈的概念 (二)栈的排列 (三)共享栈 (四)栈的常见应用 二.顺序栈的定义 三.顺序栈的初始化 四.判断顺序栈是否为空栈 五.判断顺序栈是否为满栈 六.进栈(插入操作) 七.出栈 ...
- 408数据结构学习笔记——栈和队列的应用、特殊矩阵的压缩
目录 1.栈在括号匹配中的应用 2.栈在表达式求值中的运用 2.1.中缀表达式转换后缀表达式 2.2.后缀表达式的计算方法 2.3.中缀表达式转换前缀表达式 2.4. 中缀表达式转后缀表达式(机算- ...
- Python数据结构学习笔记——队列和双端队列
目录 一.队列的定义 二.队列 实现步骤分析 三.队列的Python实现代码 四.队列的应用 六人传土豆游戏 五.双端队列的定义 六.双端队列 实现步骤分析 七.双端队列的Python实现代码 八.双 ...
- 数据结构 - 学习笔记 - 红黑树
数据结构 - 学习笔记 - 红黑树 定义 简介 知识点 1. 结点属性 2. 前驱.后继 3. 旋转 查找 插入 父结点为黑色 父结点为红色 1. 有4种情形只需要变色(对应234树4结点) 1.1. ...
- 数据结构学习笔记:利用栈实现进制转换
数据结构学习笔记:利用栈实现进制转换 一.除基倒取余法示意图 二.编写十进制转换成二进制Python程序 1.源代码 2.运行结果 其实Python提供了一
- 数据结构学习笔记:利用Python列表实现栈结构
数据结构学习笔记:利用Python列表实现栈结构 利用Python列表实现栈结构.有两种实现方式: 1.将列表的末尾(rear)作为栈顶(top) 2.将列表的前端(front)作为栈顶(top) 一 ...
- 数据结构学习笔记(七):哈希表(Hash Table)
目录 1 哈希表的含义与结构特点 1.1 哈希(Hash)即无序 1.2 从数组看哈希表的结构特点 2 哈希函数(Hash Function)与哈希冲突(Hash Collision) 2.1 哈希函 ...
最新文章
- 刀片服务器与机架服务器对比
- 使用DispatchAction类,为你的系统减肥!
- python入门:常用模块—random模块
- PHP CLI模式开发
- mvc 404错误 php,ASP.NET MVC实现404跳转的代码实例
- 下面使用计算机动画制作的,华师17年3月课程考试《计算机动画制作》作业考核试题...
- 搜索引擎索引之如何建立索引
- 通过福禄克测试仪进行数据中心机房各个区域的测试或认证
- String类得常用方法
- Python--MySql学习(10.30)
- java eml解析_javamail 收邮件 解析eml文件
- python有道-Python爬去有道翻译
- 深圳卫视 - 饭没了秀
- 【Transfer Learning】泛化到未知域:域泛化 (Domain Generalization) 综述论文
- 计算机快捷键屏幕录制,电脑录屏快捷键是哪个(电脑录屏的方法有4种)
- jquery audio在微信或者客户端需要点击两次才能正常播放的问题解决方案
- GitLab使用教程(详细)
- ssm框架的简要介绍
- 安装IBM HTTP SERVER
- windows 注册表固定桌面壁纸
热门文章
- 软件系统的多维性能模型
- 破解APK并修改APK的包名
- 深度学习与自然语言处理教程(8) - NLP中的卷积神经网络(NLP通关指南·完结)
- 不用群发,就可以查看你被哪些微信好友删除了
- android程序怎么执行,电脑怎么运行安卓手机程序【详细介绍】
- html文本框监听粘贴,HTML5将粘贴板上的图片粘贴到文本框中
- 2020-08-29 ---- 美团点评 笔试
- 苹果蓝牙耳机平替哪款最好?四款苹果蓝牙耳机平价替代
- 某星级酒店警卫队定岗定编项目纪实 ——完善定岗定编,转向人性化管理
- Dev中的GridControl中根据条件显示背景色