栈是一种线性表,它的特点是什么?

如题所述

第1个回答  2022-11-05
栈是一种线性表,它的特点是什么?
栈(stack)在电脑科学中是限定仅在表尾进行插入或删除操作的线形表。

栈是一种资料结构,它按照先进后出的原则储存资料,先进入的资料被压入栈底,最后的资料在栈顶,需要读资料的时候从栈顶开始弹出资料(最后一个数据被第一个读出来)。

栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进来的压在底下,随后一件一件往堆。取走时,只能从上面一件一件取。堆和取都在顶部进行,底部一般是不动的。

栈就是一种类似桶堆积物品的资料结构,进行删除和插入的一端称栈顶,另一堆称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。 栈也称为后进先出表(LIFO表)。

1、进栈(PUSH)演算法

①若TOP≥n时,则给出溢位资讯,作出错处理(进栈前首先检查栈是否已满,满则溢位;不满则作②);

②置TOP=TOP+1(栈指标加1,指向进栈地址);

③S(TOP)=X,结束(X为新进栈的元素);

2、退栈(POP)演算法

①若TOP≤0,则给出下溢资讯,作出错处理(退栈前先检查是否已为空栈, 空则下溢;不空则作②);

②X=S(SOP),(退栈后的元素赋给X);

③TOP=TOP-1,结束(栈指标减1,指向栈顶)。
栈和伫列都是特殊线性表,简述他们的区别(特殊性)
栈是先进后出,队是先进先出,这是他们存取上的根本不同
栈和线性表有什么区别?
一般线性表使用阵列来表示的

线性表一般有插入、删除、读取等对于任意元素的操作

而栈只是一种特殊的线性表

栈只能在线性表的一端插入(称为入栈,push)或者读取栈顶元素或者称为“弹出、出栈”(pop)。

栈在阵列的基础上可以用一个指向栈顶的标骇符来表示,如a表示栈,则a[top]就表示栈顶元素

栈就是所谓的“先进后出,First in last out, FILO”
堆叠是一种结构较简单的线性表,它只允许在表的一端进行资料的插入和删除操作 20分
stack.h: header file

class Stack {

int MaxStack;

int EmptyStack; int top;

char* items;

public:

Stack(int);

~Stack();

void push(char);

char pop();

int empty();

int full();

};

-------------------------------

stack.cpp: stack functions

#include "stack.h"

Stack::Stack(int size) {

MaxStack = size;

EmptyStack = -1;

top = EmptyStack;

items = new char[MaxStack];

}

Stack::~Stack() {delete[] items;}

void Stack::push(char c) {

items[++top] = c;

}

char Stack::pop() {

return items[top--];

}

int Stack::full() {

return top + 1 == MaxStack;

}

int Stack::empty() {

return top == EmptyStack;

}

-------------------------------

stackmain.cpp: use stack

#include

#include "stack.h"

int main() {

Stack s(10); 10 chars

char ch;

while ((ch = cin.get()) != '\n')

if (!s.full()) s.push(ch);

while (!s.empty())

cout << s.pop();

cout << endl;

return 0;

}
串是一种特殊的线性表,其特殊性体现在什么地方
串是一种特殊的线性表,其特殊性体现在资料元素是一个字元

串值也可用连结串列来储存,由于串的资料元素是一个字元,它只有8位二进位制数, 因此用连结串列储存时,通常一个结点中存放的不是一个字元,而是一个子串,例如: 在编辑系统中,整个文字编辑区可以看成是一个串,每一行是一个子串,构成一个结点。
栈和线性表有什么区别
一般线性表使用阵列来表示的

线性表一般有插入、删除、读取等对于任意元素的操作

而栈只是一种特殊的线性表

栈只能在线性表的一端插入(称为入栈,push)或者读取栈顶元素或者称为“弹出、出栈”(pop)。

栈在阵列的基础上可以用一个指向栈顶的识别符号来表示,如a表示栈,则a[top]就表示栈顶元素

栈就是所谓的“先进后出,First in last out, FILO”
( )是一种先进先出的线性表。 A 栈 B伫列 C杂凑表(散列表) D二叉树
B 伫列

栈的概念是弹压,就像子弹壳装弹,一粒一粒压进去,但是打出来的时候是从上面打骇来的,最先压进去的最后弹出来,如果进去顺序是123,打出来顺序是321,这就是后进先出

伫列的概念就是我们平时排队,按次序来,你排在第1个,那你就第一个轮到,就是先进先出,先到先来
栈是插入和删除只能固定在一端进行的线性表,也称“后进先出表”。
有2个问题需要澄清:

1.栈是一种后进先出的资料结构,只能在末端进行插入和删除的操作。应该说成是只能线上性表的一端进行插入和删除。说成末端,就认为的把线性表分成开始端和结束端了。但由于线性表中元素只具有线性关系,并没有明确的起始元素和终止元素。

2.函式呼叫之所以需要栈,是因为函式执行过程中,还能会巢状呼叫其他函式,但无论巢状呼叫多少个函式,总是要遵循一个原则:后被呼叫的函式要先执行完毕,程式要回到上一层函式的呼叫处继续执行,为了实现这个机制,才设计了栈这种后进先出的资料结构。如果把函式呼叫看成罗餐盘的话,而把当你去盘子的时候,肯定先取走最后一个罗上去的盘子,那么函式执行结束,函式呼叫返回就相当于你在取盘子。