栈和队列
栈和队列复习
I will,
淡然地接受努力过后依旧普通的自己
展开
-
C语言 实现中缀表达式转后缀表达式并求值(附加括号匹配判断)
1、栈的基本操作函数Stack.c#include "Stack.h"//栈的相关操作void InitStack(SqStack* S) { //初始化 S->top = -1;}Status IsEmpty(SqStack S) { //判空 if (S.top == -1) return TRUE; else return FALSE;}Status Push(SqStack* S, char c) { //入栈 if (S->top == M.原创 2021-06-22 23:41:44 · 1850 阅读 · 4 评论 -
队列的链式实现
一、带头结点#include<stdio.h>#include<stdlib.h>/*链栈定义:带头结点*/typedef struct LinkNode{ //链式队列结点 int data; struct LinkNode *next;}LinkNode;typedef struct{ //链式队列结点 LinkNode *front,*rear; //队列的队头和队尾指针}LinkQueue;/*初始化*/void InitQueue(Lin原创 2020-07-03 23:45:10 · 207 阅读 · 0 评论 -
队列的顺序实现(6种方式)
一、定义队尾指针指向队尾元素下一个位置方案一(牺牲1个空间):/***判断队满条件:队尾指针的再下一个位置是队头****//***即:(Q.rear+1)%Maxsize == Q.front。***********//***代价:牺牲一个存储单元.***********************/#include<stdio.h>/*队列定义*/#define Maxsize 10typedef struct{ int data[Maxsize]; //静态数组存放队列元原创 2020-07-03 23:40:57 · 2138 阅读 · 1 评论 -
括号匹配(栈的应用)
#include<stdio.h>#define MaxSize 256//栈的相关操作typedef struct{ //定义栈 char data[MaxSize]; int top;}SqStack;void InitStack(SqStack &S){ //初始化 S.top = -1;}bool IsEmpty(SqStack S){ //判空 if(S.top == -1) return true; else return fa原创 2020-07-03 23:29:17 · 181 阅读 · 0 评论 -
判断字符串的对称问题(栈的应用)
#include<stdio.h>#include<stdlib.h>typedef struct LNode{ char data; LNode *next;}LNode,*LinkList;/*初始化单链表*/bool InitList(LinkList &L){ L = (LNode *)malloc(sizeof(LNode)); //分配一个结点 if(L == NULL) return false; L->next = NULL;原创 2020-06-17 23:19:59 · 1053 阅读 · 0 评论 -
共享栈的实现
#include<stdio.h>/*定义共享栈*/#define MaxSize 50typedef struct{ int data[MaxSize]; int top0; int top1;}SharedStack;/*初始化*/void InitStack(SharedStack &S){ S.top0 = -1; //初始化栈顶指针 S.top1 = MaxSize;}/*判空*/bool StackEmpty(SharedStack &a原创 2020-06-17 23:13:48 · 375 阅读 · 0 评论 -
链栈的实现(详细注释)
#include<stdio.h>#include<stdlib.h>/*链栈的定义(不含头结点)*/typedef struct LinkNode{ int data; struct LinkNode *next;}*ListStack; //栈类型定义/*初始化*/bool InitStack(ListStack &S){ S = NULL; //空表,防止脏数据 return true;}/*判空*/bool StackEmpty(L原创 2020-06-17 23:00:27 · 619 阅读 · 0 评论 -
顺序栈的实现(详细注释)
在这里插入代码片#include<stdio.h>/*顺序栈的定义*/#define MaxSize 50 //定义栈中元素的最大个数typedef struct{ int data[MaxSize]; //存放栈中元素 int top; //栈顶指针}SqStack;/*初始化栈*/void InitStack(SqStack &S){ S.top = -1; //初始化栈顶指针,也可初始化为S.top=0}/*判栈空*/bool StackE原创 2020-06-17 22:46:56 · 540 阅读 · 0 评论