栈的应用|一路上

栈和队列的应用非常之广,只要问题满足后进先出和先进先出原则,均可使用栈和队列作为其数据结构。 栈的应用 1、 数制转换 将一个非负的十进制整数N转换为另一个等价的基为B的B进制数的问题,很容易通过”除B取余法”来解决。 【例】将十进制数13转化为二进制数。 解答:按除2取余法,得到的余数依次是1、0、1、1,则十进制数转化为二进制数为1101。 分析:由于最先得到的余数是转…

链栈|E路上

链栈 栈的链式存储结构称为链栈。 1、链栈的类型定义 链栈是没有附加头结点的运算受限的单链表。栈顶指针就是链表的头指针。 链栈的类型说明如下: typedef struct stacknode{ DataType data struct stacknode *next }StackNode; typedef struct{ StackNode *top;  //栈顶指针 }LinkStack; 注…

顺序栈|E路上

顺序栈 栈的顺序存储结构简称为顺序栈,它是运算受限的顺序表。 1、 顺序栈的类型定义 #define StackSize 100 //假定预分配的栈空间最多为100个元素 typedef char DataType;//假定栈元素的数据类型为字符 typedef struct{ DataType data[StackSize]; int top; }SeqStack; 注意: ①顺序栈中元素用向量…

栈的定义及基本运算|E路上

栈和队列是两种特殊的线性表,它们的逻辑结构和线性表相同,只是其运算规则较线性表有更多的限制,故又称它们为运算受限的线性表。栈和队列被广泛应用于各种程序设计中。 栈的定义及基本运算 1、栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表。 (1)通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。 (2)当表中没有元素时称为空栈。 (3)栈为后进先出(Las…