首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据结构与算法(三)栈与队列

    一、栈   栈(stack)是限定仅在表尾进行插入和删除操作的线性表,我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈;栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构。   理解栈的定义时我们需要注意:首先它是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系,只不过它是一种特殊的线性表而已,定义中说是在线性表的表尾进行插入和删除操作,这里的表尾是指栈顶,而不是栈底。它的特殊之处就在于限制了这个线性表的插入和删除位置,它始终只在栈顶进行,这也就使得:栈底是固定,最先进栈的元素只能在栈底,每当从栈内弹出一个数据,栈的当前容量就-1。   栈的插入操作,叫做进栈,也称为压栈、入栈;栈的删除操作,叫做出栈,也有叫做弹栈;栈对线性表的插入和删除的位置进行了限制,并没有对元素进出的时间进行限制,也就是说,在不是所有元素都进栈的情况下,事先进去的元素也可以出栈,只要保证栈顶元素出栈就可以。   清空栈:就是将栈中的元素全部作废,但找本身的物理空间并不会发生改变(不是销毁);   销毁栈:是要释放掉该栈所占据的物理内存空间;

    01

    算法与数据结构(一) 线性表的顺序存储与链式存储(Swift版)

    温故而知新,在接下来的几篇博客中,将会系统的对数据结构的相关内容进行回顾并总结。数据结构乃编程的基础呢,还是要不时拿出来翻一翻回顾一下。当然数据结构相关博客中我们以Swift语言来实现。因为Swift语言是面向对象语言,所以在相关示例实现的时候与之前在大学学数据结构时C语言的实现有些出入,不过数据结构还是要注重思想,至于实现语言是面向对象的还是面向过程的影响不大。 接触过数据结构的小伙伴应该都知道程序 = 数据结构 + 算法。数据结构乃组织组织数据的结构,算法就是对这些结构中的数据进行操作,可见数据结构的重

    07

    期末复习之数据结构 第2章 线性表

    #include <iostream> using namespace std; #define ElemType int #define Status int #define MAXSIZE 100 typedef struct LNode { ElemType data;//数据域 struct LNode* next;//指针域 }LNode, * LinkList; Status InitList(LinkList& L) { L = new LNode; L->next = NULL; return 1; } Status InsertList(LinkList& L, int pos, ElemType e) { LNode* s; LinkList p = L; int j = 0; while (p&&(j<pos-1)) { p = p->next; ++j; } if (!p || j > pos - 1) { return 0; } s = new LNode; s->data = e; s->next = p->next; p->next = s; return 1; } int main() { LinkList P; InitList(P); int num; cout << "请输入整数,按ctrl+z结束输入" << endl; int Length = 1; while (cin>>num) { Length++; InsertList(P, Length, num); } cout <<"单链表结点个数为:"<< Length-1 << endl; }

    02

    数据结构回顾之顺序存储结构中的线性表(栈与队列顺序线性表实现)

    说到数据结构呢,对于一个Coder来说还是蛮重要的啦,每次看数据结构的东西都有新的收获,这两天在回顾数据结构的知识。当然啦,虽然数据结构有些是理论的东西,如果好好的理解数据结构的东西还是少不了的代码的支撑的。数据结构简单的来说吧,可以分为两大类,一个是数据的“物理存储结构”,另一种是数据的“逻辑存储结构”。数据的“物理存储结构”又可分为顺序的和链式的(下面将会结合着代码打印内存地址的形式来观察物理存储结构)。 逻辑存储结构又可分为集合,线性, 树,图这些东西。   数据结构说白了就是如何利用上面的那些东

    07

    2022数据结构最新面试题(大厂必备)

    5.数据的操作     1.逻辑机构,存储结构,和运算 是数据结构讨论中不可分割的3个方面 6.算法概述     1.算法是对特定问题求解步骤的一种描述,是指令的有限序列。其中每条指令表示一个或多个操作。 7.算法的五种性质     1.有穷性     2.确定性     3.有效性     4.输入     5.输出 8.算法设计的目标     1.正确性     2.可读性     3.健壮性     4.高效率(时间与空间) 9.数据操作     1.初始化:创建、销毁:     2.数据操作:插入/添加、删除、修改     3.数据使用:查找、遍历 10.算法的描述方式:     1.自然语言     2.程序设计语言     3.伪代码     4.流程图

    03
    领券