数据结构应用题第三章栈和队列代码c

【数据结构|C语言版】栈和队列 各位小伙伴大家好!上次小编给大家讲解了数据结构中的重要基础:算法效率和复杂度分析,接下来我们讲解一下栈和队列!【知识框架】以上就是小编对栈和队列的讲解。如果觉得小编讲的还可以,还请一键三连。互三必回!持续更新中~! 阅读详情
  • 若希望循环队列中的元素都得到利用,则需要设置一个标志域tag,并且以tag的值为0或1来区分队头指针front和队尾指针rear相同的队列状态是“空”还是“满”
#ifndef T1_H
#define T1_H

#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>

#define MaxSize 10//定义栈中元素的最大个数

typedef int ElemType;
typedef struct{
    ElemType data[MaxSize];
    int front,rear;//front指向队头元素,rear指向队尾的下一个位置(也就是下一个应该插入的位置
    int tag;//0表示出队操作,1表示入队操作,只有在指针相同且是出队操作才表示空,在指针相同的入队操作表示满
}SqQueue;

void InitSqQueue(SqQueue *Q);//初始化
bool EnSqQueue(SqQueue *Q,ElemType x);//入队操作
bool DeSqQueue(SqQueue *Q,ElemType *x);//出队操作

#endif
#include "t1.h"

void InitSqQueue(SqQueue *Q){
    (*Q).rear=(*Q).front=0;
    (*Q).tag=0;
}
bool EnSqQueue(SqQueue *Q,ElemType x){
    if((*Q).rear==(*Q).front&&(*Q).tag==1)//队列满
        return false;

    (*Q).data[(*Q).rear]=x;
    (*Q).rear=((*Q).rear+1)%MaxSize;
    (*Q).tag=1;
    return true;
}
bool DeSqQueue(SqQueue *Q,ElemType *x){
    if((*Q).rear==(*Q).front&&(*Q).tag==0)//队空
        return false;

    (*Q).tag=0;
    *x=(*Q).data[(*Q).front];
    (*Q).front=((*Q).front+1)%MaxSize;
    return true;
}
void printfSqQueue(SqQueue Q){
    if(Q.rear==Q.front&&Q.tag==0)
        return;

    do{
        printf("%d<-",Q.data[Q.front]);
        Q.tag=0;
        Q.front=(Q.front+1)%MaxSize;
    }while(Q.rear!=Q.front&&Q.tag==0);
    printf("\n");
}
void test1(){
    SqQueue Q;
    InitSqQueue(&Q);
    
    ElemType x=0;
    scanf("%d",&x);
    while(x!=999){
        EnSqQueue(&Q,x);
        scanf("%d",&x);
    }
    // printf("%d-%d\n",Q.front,Q.rear);
    printfSqQueue(Q);
    DeSqQueue(&Q,&x);
    printfSqQueue(Q);
}
void main(){
    test1();
}
  • 假设一个算数表达式中包括圆括号,方括号和花括号三种类型的括号,编写一个算法来判别表达式中的括号是都匹配,以字符"\0"作为算数表达式的结束符

思路:遇到左括号入栈
遇到有括号,出栈匹配,同一类型括号且左右括号匹配成功,其他失败
全部匹配成功且栈为空,匹配成功

#ifndef LISTACK_H
#define LISTACK_H
#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>
// 链栈,不带头结点的情况
typedef char ElemType;
typedef struct LinkNode{
    ElemType data;//数据域
    struct LinkNode *next;//这里的定义是有问题的,在栈中应该设计一个top指针,但是考虑到手比脑快代码都写完了就不改了,介意的话把next改名为top就可以了
}LinkNode,*LinkStack;

bool InitStack4(LinkStack *s);//初始化不带头结点的栈
bool Push4(LinkStack *s,ElemType x);//入栈
bool Pop4(LinkStack *s,ElemType *x);//出栈
void printfStack4(LinkStack s);//打印
bool EmptyStack4(LinkStack s);//空栈
#endif
#include "listack.h"


bool InitStack4(LinkStack *s){
    *s=NULL;//栈空,不带头结点
    return true;
}
bool EmptyStack4(LinkStack s){
    if(s==NULL){
        return true;
    }
    return false;
}
bool Push4(LinkStack *s,ElemType x){
    LinkNode *p=(LinkNode *)malloc(sizeof(LinkNode));
    if(p==NULL)
        return false;
    p->data=x;
    // 这一步很容易错
    p->next=(*s);
    (*s)=p;
    return true;
}
bool Pop4(LinkStack *s,ElemType *x){
    if((*s)==NULL)//空表
        return false;
    LinkNode *p=*s;
    *s=(*s)->next;
    *x=p->data;
    free(p);

    return true;
}
void printfStack4(LinkStack s){
    // s=NULL;
    LinkNode *p=s;
    while(p!=NULL){
        printf("%c->",p->data);
        p=p->next;
    }
    printf("\n");
}
// void test4(){
//     LinkStack s;
//     InitStack4(&s);
//     // printfStack4(s);
//     Push4(&s,1);
//     Push4(&s,2);
//     printfStack4(s);
//     ElemType x=0;
//     Pop4(&s,&x);
//     printfStack4(s);

// }
// void main(){
//     test4();
// }
#include "listack.h"
// 假设字符串中只有三种括号 {} [] ()
bool ifMatch(char c[],int len){
    if(len==0)
        return true;

    LinkStack s;
    InitStack4(&s);
    for(int i=0;i<len;i++){
        if(c[i]=='{'||c[i]=='('||c[i]=='['){//左括号入栈
            Push4(&s,c[i]);
        }else if(c[i]=='}'||c[i]==')'||c[i]==']'){
            if(EmptyStack4(s))//如果是右括号需要被匹配但是栈空,直接返回false
                return false;
            char temp=' ';
            Pop4(&s,&temp);
            if(c[i]=='}'&&temp!='{')
                return false;
            else if(c[i]==']'&&temp!='[')
                return false;
            else if(c[i]==')'&&temp!='(')
                return false;   
        }
    }
    if(!EmptyStack4(s))//所有都正常匹配,但是左括号还有多余的
        return false;

    return true;

}


  • 车厢调度,两个铁道之间都是单向行驶道,火车调度站有一个用于调度的“栈道”,火车调度站的入口有n节硬座和软座车厢,(分别用H和S表示)等待调度,编写算法,输出对这n节车厢进行调度的操作序列,使得所有软座车厢都被调整到硬车厢之前。
    体会数组和指针之间的联系
#include "t2.h"

// 函数声明
bool InitStack4(LinkStack *s);//初始化不带头结点的栈
bool Push4(LinkStack *s,ElemType x);//入栈
bool Pop4(LinkStack *s,ElemType *x);//出栈
void printfStack4(LinkStack s);//打印
bool EmptyStack4(LinkStack s);//空栈

void train(char *train){
    char *p=train,*q=train,c=' ';
    LinkStack s;
    InitStack4(&s);
    while(*p){
        if(*p=='H')
            Push4(&s,*p);
        else
            *(q++)=*p;

        p++;
    }
    while(!EmptyStack4(s)){
        Pop4(&s,&c);
        *(q++)=c;
    }
}
void test2(){
    char c[]="HHHHSSSSSHSHSHSH";
    train(c);
    int index=0;
    while(c[index]!='\0'){
        printf("%c",c[index++]);
    }
}
void main(){
    test2();
}
bool InitStack4(LinkStack *s){
    *s=NULL;//栈空,不带头结点
    return true;
}
bool EmptyStack4(LinkStack s){
    if(s==NULL){
        return true;
    }
    return false;
}
bool Push4(LinkStack *s,ElemType x){
    LinkNode *p=(LinkNode *)malloc(sizeof(LinkNode));
    if(p==NULL)
        return false;
    p->data=x;
    // 这一步很容易错
    p->next=(*s);
    (*s)=p;
    return true;
}
bool Pop4(LinkStack *s,ElemType *x){
    if((*s)==NULL)//空表
        return false;
    LinkNode *p=*s;
    *s=(*s)->next;
    *x=p->data;
    free(p);

    return true;
}
void printfStack4(LinkStack s){
    // s=NULL;
    LinkNode *p=s;
    while(p!=NULL){
        printf("%c->",p->data);
        p=p->next;
    }
    printf("\n");
}
// void test4(){
//     LinkStack s;
//     InitStack4(&s);
//     // printfStack4(s);
//     Push4(&s,'1');
//     Push4(&s,'2');
//     printfStack4(s);
//     ElemType x=0;
//     Pop4(&s,&x);
//     printfStack4(s);

// }
// void main(){
//     test4();
// }
  • 某汽车轮渡口,过江渡船每次能载10辆车过江,过江车辆分为客车类和货车类,上渡船有如下规定:同类车先上船,客车先于货车上船,且每上4辆客车才允许上一辆货车,若等待的客车不足4辆,则以或车代替,若无货车等待,允许客车都上船。使设计算法模拟以上渡口管理。

思路:这里设计一种最大长度为10的队列,用Q存储要过车的顺序,QH表示货车的队列,QK表示客车队列,每次对过车的车辆先分类,对于客车,每4辆客车加一辆货车,然后对应balance标志位置0,客车空或者货车空就可把剩下的另一种类型车全部入Q队列,这里值得注意的是,因为设计的队列长度为10,所以对于大于10的车辆不会入队列。

#ifndef T1_H
#define T1_H

#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>

#define MaxSize 10//定义栈中元素的最大个数

typedef char ElemType;
typedef struct{
    ElemType data[MaxSize];
    int front,rear;//front指向队头元素,rear指向队尾的下一个位置(也就是下一个应该插入的位置
    int tag;//0表示出队操作,1表示入队操作,只有在指针相同且是出队操作才表示空,在指针相同的入队操作表示满
}SqQueue;

void InitSqQueue(SqQueue *Q);//初始化
bool EnSqQueue(SqQueue *Q,ElemType x);//入队操作
bool DeSqQueue(SqQueue *Q,ElemType *x);//出队操作
void printfSqQueue(SqQueue Q);//打印队列
bool EmptySqQueue(SqQueue Q);//判断队列是否为空
bool FullSqQueue(SqQueue Q);//队列是否满
#endif
#include "t1.h"

// 若希望循环队列中的元素都得到利用,则需要设置一个标志域tag,并且以tag的值为0或1来区分
// 队头指针front和队尾指针rear相同的队列状态是“空”还是“满”
void InitSqQueue(SqQueue *Q){
    (*Q).rear=(*Q).front=0;
    (*Q).tag=0;
}
bool EnSqQueue(SqQueue *Q,ElemType x){
    if((*Q).rear==(*Q).front&&(*Q).tag==1)//队列满
        return false;

    (*Q).data[(*Q).rear]=x;
    (*Q).rear=((*Q).rear+1)%MaxSize;
    (*Q).tag=1;
    return true;
}
bool DeSqQueue(SqQueue *Q,ElemType *x){
    if((*Q).rear==(*Q).front&&(*Q).tag==0)//队空
        return false;

    (*Q).tag=0;
    *x=(*Q).data[(*Q).front];
    (*Q).front=((*Q).front+1)%MaxSize;
    return true;
}
bool EmptySqQueue(SqQueue Q){
    if(Q.rear==Q.front&&Q.tag==0){
        return true;
    }
    return false;
}
bool FullSqQueue(SqQueue Q){
    if(Q.rear==Q.front&&Q.tag==1)
        return true;
    return false;
}
void printfSqQueue(SqQueue Q){
    if(Q.rear==Q.front&&Q.tag==0)
        return;

    do{
        printf("%c<-",Q.data[Q.front]);
        Q.tag=0;
        Q.front=(Q.front+1)%MaxSize;
    }while(Q.rear!=Q.front&&Q.tag==0);
    printf("\n");
}
// void test1(){
//     SqQueue Q;
//     InitSqQueue(&Q);
    
//     ElemType x=0;
//     scanf("%d",&x);
//     while(x!=999){
//         EnSqQueue(&Q,x);
//         scanf("%d",&x);
//     }
//     // printf("%d-%d\n",Q.front,Q.rear);
//     printfSqQueue(Q);
//     DeSqQueue(&Q,&x);
//     printfSqQueue(Q);
// }
// void main(){
//     test1();
// }
#include  "t1.h"

// K表示客车,H表示货车,QH用来存暂时还不能上船的货车,QK表示暂时还不能上船的货车,Q表示上船的顺序

void boat(char *c){
    if(*c=='\0')
        return;
    SqQueue Q;
    SqQueue QK;
    SqQueue QH;
    int balance=0;//表示当前客车已入船的数量,每4归0
    char temp=' ';//临时变量
    InitSqQueue(&Q);
    InitSqQueue(&QK);
    InitSqQueue(&QH);
    while(*c&&!FullSqQueue(QH)&&!FullSqQueue(QK)){//分类,是什么车
        if(*c=='H'){
            EnSqQueue(&QH,*c);
        }else{
            EnSqQueue(&QK,*c);
        }
        c++;
    }
    while(!EmptySqQueue(QK)||!EmptySqQueue(QH)){
        while(balance<4&&!EmptySqQueue(QK)){
            DeSqQueue(&QK,&temp);
            EnSqQueue(&Q,temp);
            balance++;
        }
        if(balance==4&&!EmptySqQueue(QH)){
            DeSqQueue(&QH,&temp);
            EnSqQueue(&Q,temp);
            balance=0;
        }
        while(EmptySqQueue(QK)&&!EmptySqQueue(QH)){
            DeSqQueue(&QH,&temp);
            EnSqQueue(&Q,temp);
        }
        while(EmptySqQueue(QH)&&!EmptySqQueue(QK)){
            DeSqQueue(&QK,&temp);
            EnSqQueue(&Q,temp);
        }
    }
    printfSqQueue(Q);
}
void test4(){
    char c[]="HHHHHHHHHHH";
    boat(c);
}
void main(){
    test4();
}
数据结构 - 栈和队列(C语言实现) 一. 栈 栈的定义  栈(Stack)是一种只能在一端进行插入或删除操作的线性表。                     图一 栈的示意图 顺序栈的基本操作   初始化 void InitStack(Stack *S){ //初始化顺序栈即使栈顶指针为-1 S->Top = -1; }   栈判空 int StackEmpty(Stack *S) { //栈判空函数... 阅读详情

相关推荐

考研题目 第三章 栈和队列 答案

第三章  栈和队列一、选择题  1.B 2.1B 2.2A

懒王子的专栏 4924

数据结构之栈、队列的基本操作(附源码)

栈和队列 1.栈 栈是一种只能在一段进行插入或者删除操作的线性表。 允许进行操作的的一端称为栈顶(Top)。表的另一端称为栈顶,栈顶是固定不变的。 栈的特点:后进先出 比如我们在往瓶子里装沙子时,最后被装进去的沙子会被最先倒出来。 栈可以分为顺序栈和链式栈 创建一个栈 定义栈中的节点,拥有一个数据域与一个指针域。 typedef struct Node { int data ; struct...

尔等同学的博客 836

显示模组Bonding IC气泡问题的诊断与优化策略

本文深入分析了显示模组Bonding IC气泡问题的成因与优化策略,涵盖IC两端剥离气泡、彩虹状水汽气泡、电极下方无规律气泡及IC输入端气泡等类型。通过工艺参数优化、材料存储处理、清洁环境控制及维修品特殊处理等多维度解决方案,有效降低气泡不良率。同时介绍了纳米改性ACF材料、激光辅助排泡技术等前沿解决方案,为触控显示行业提供实用参考。

weixin_26805597的博客 420

c语言数据结构栈和队列代码实现

c语言数据结构 栈和队列 的代码实现,让你不再恐惧,总结成两句话:栈是在链表表尾进行插入和删除的线性表。队列时只能在一端插入,另一端删除的线性表。

小洁洁 368

CCS安装教程图解说明:可视化步骤快速上手

通过清晰的图解步骤详解CCS安装过程,帮助新手快速掌握环境搭建。结合ccs安装教程与实际操作界面,每一步都直观易懂,大幅降低学习门槛,提升配置效率。

weixin_42611310的博客 966

数据库原理及应用教程课后习题答案 第4版 微课版 陈志泊主编

数据库原理及应用教程 第4版 微课版 陈志泊主编 习题参考答案

共同学习,心怀感激。 5万+

数据结构之栈与队列(完整代码)

栈与队列顺序栈链栈(带头结点)顺序队列循环队列栈的应用匹配括号中缀表达式转后缀表达式递归(斐波那契数列) 顺序栈 //栈,先进后出 #include<iostream> #include<algorithm> using namespace std; typedef int ElemType; #define MaxSize 10 typedef struct{ ElemType data[MaxSize]; int top; }SqStack; void

起个名字真难的博客 2219

[SWPUCTF 2018]SimplePHP--一道简单的Phar反序列化题目

题目就不贴了,直接给出利用链①:echo会触发__toString魔术方法,所以这里的$this->test应该是Show类实例化的对象show②:这里应该使$this->str['str']为Test类实例化后的对象test,然后test->source会触发__get魔术方法(因为Test类没有名为source的成员变量,所以会触发get魔术方法,并且$key=source)③④:调用get方法,$...

Dream' 1260

数据结构与算法--栈和队列代码实现(C语言)

数据结构与算法--栈和队列代码实现(C语言)

weixin_59725175的博客 515

YOLO训练/写作脚本目录一览 | 涉及标签格式转换、数据扩充、热力图、感受野、精度曲线、数量统计等近百个脚本文件

在大家购买专栏后,便可获得全部的脚本文件。在获取到文件后,只需按照将程序放在个人项目中即可一键运行。

Limiiiing的博客 2377

华为海思:大小海思的双轮驱动战略分析

大海思的定位清晰明确,即专注于为华为内部提供高性能、高集成度的芯片解决方案,以支持华为终端、服务器等业务的快速发展。小海思的产品线广泛,涵盖了广域物联、短距物联、手机穿戴、显示交互、智慧视觉、智慧媒体、MCU、模拟以及光模块等多个领域。通过提供多样化的芯片解决方案,小海思旨在满足外部客户的不同需求,拓展华为海思在芯片市场的份额和影响力。大海思的产品布局主要围绕华为的内部需求展开。在智能手机应用处理器方面,大海思的麒麟系列芯片已经成为华为手机的标志性产品,以其出色的性能和能效比赢得了市场的广泛认可。

dream it possible 2926

数据结构-队列和栈有什么区别

一、队列与栈的定义: 队列(Queue):是限定只能在表的一端进行插入和在另一端进行删除操作的线性表; 栈(Stack):是限定只能在表的一端进行插入和删除操作的线性表。 二、队列与栈的区 队列和栈是两种不同的数据结构。它们有以下区别: (1)操作的名称不同。 队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。 (...

Roger_CoderLife的博客 3万+

(汇总篇)语义SLAM相关开源方案| 全球优秀作者与实验室 | SLAM学习资料整理

SLAM 与深度学习相结合的工作当前主要体现在两个方面,一方面是将语义信息参与到建图、位姿估计等环节中,另一方面是端到端地完成 SLAM。针对建图的工作一方面是利用几何信息进行稠密重建,另一方面很多工作利用语义信息达到了很好的语义重建效果,三维重建、SFM。动态 SLAM 也是一个很值得研究的话题,这里不太好分类,很多工作用到了语义信息或者用来三维重建,收集的方案相对较少。优化可能是 SLAM 中最难的一部分了吧 +_+ ,一般都是直接用现成的因子图、图优化方案,要创新可不容易。

熊猫小妖的AI世界 7871

【数据结构】栈和队列

然后,我们可以使用STTop取出栈(st)中的数据,进行对栈(s)的左右括号的匹配,如果匹配不成功,则返回false,直到栈(s)为空时,过程结束。若节点大于一个,那我们可以创建一个QNode*的next节点指向队头指向的下一个节点,然后再将队头的节点free,再重新将队头的节点改为next指针指向的新节点。首先,我们来了解一种新的数据结构——栈。将数据导入栈中,首先,将空间进行扩容(防止空间不足引起的越界访问),并将扩容后的空间传给数组a,然后,再于新空间进行导入数据的操作,结尾记得改变新栈的个数。

2301_81348661的博客 3767

华为面试手撕真题【求1-n的最小公倍数】

求1-n的最小公倍数

MISAYAONE的博客 2万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

一文教你数据结构体栈和队列的实现

这篇文章是关于数据结构中栈和队列的实现,同时附函他的全部代码,相信大家看过这篇文章一定能够掌握栈和队列的实现!!!!!!!!!!

小马同学的博客 6173

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C语言之数据结构之栈和队列的运用

C语言数据结构——用两个队列实现栈和用两个栈实现队列的思路讲解和代码实现

2301_81988400的博客 3122

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

《数据结构》-第三章 栈和队列(习题)

第三章 栈和队列 栈与队列作为操作受限的线性表,在考试中常以选择题、填空题出现,也会有部分算法题目涉及对栈或队列的知识(如求解阶乘n!、括号匹配等场景)。栈部分相对常考内容为进栈、出栈操作、栈空栈满判断共享栈两端进出栈的操作(考研);对于队列常以真假溢出判断、循环队列队空(队满)判断方向进行出题。 一、选择题(第1-10题为基础难度,第11-20题难度适合考研) 1.若进栈序列为a,b,c,则通过入出栈操作可能得到的a,b,c的不同排列个数为 A) 4 B) 5...

大家一起进步叭 1万+

数据结构——栈和队列

本文详细介绍的栈和队列的实现方式,更是重点提到了4个关于栈和队列的OJ题:分别是设计循环队列,用栈实现队列,用队列实现栈,有效的括号。

fax_player的博客 6219

【C语言】数据结构——栈和队列实例探究

typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。若struct Stack {}这样来定义结构体的话。在申请Stack 的变量时,需要这样写,struct Stack n;若用typedef,可以这样写,typedef struct Stack{}ST;。在申请变量时就可以这样写,ST n;区别就在于使用时,是否可以省去struct这个关键字。//标识栈顶的位置}ST;定义了一个链式队列的数据结构。

qq_64818885的博客 1825

【栈和队列】C语言简单应用 ⌊栈和队列互相实现,循环队列⌉

栈和队列简单应用

qq_62852431的博客 2299

数据结构 习题 第三章 栈和队列 (C语言描述)

最近在复习数据结构,所以想把平时上课做的习题做个总结,如果大家有遇到这方面的问题就可以参考一下了,废话不多说,直接开始吧。 题目中的栈和队列均以指针命名,比如栈s s表示指向栈的指针。 数组Q[0…m] 表示数组的最小下标是0,最大下标是m 数组q[M]表示数组的空间大小为M,对应的下标 0…M-1 1、单选题 在栈中,下列说法正确的是(C )。 A.每次插入总是在栈底,每次删除也总是在栈底。 B.每次插入总是在栈顶,每次删除总是在栈底。 C.每次插入总是在栈顶,每次删除也总是在栈顶。 D.每次插入总是在栈

TXYGoodluck的博客 5194

数据结构(C语言严蔚敏版)——第三章 栈和队列

和栈相反,队列(queue)是一种先进先出(first in first out ,缩写为FIFO)的线性表。它只允许在表的一端进行插入,而在另一端删除元素。在队列中,允许插入的一端叫做队尾(rear),允许删除的一端则称为队头(front)。

2301_80818909的博客 2677

数据结构第三章 栈和队列题目答案

一、选择题 1.栈结构通常采用的两种存储结构是( A )。 A.顺序存储结构和链表存储结构 B.散列方式和索引方式 C.链表存储结构和数组 D.线性链表结构和非线性存储结构 2.在栈操作中,输入序列为(A,B,C,D),不可能得到的输出数列是( D )。 A.(A,B,C,D) B.(D,C,B,A) C.(A,C,D,B) ...

qq_43663263的博客 8297

【数据结构】第三章:栈和队列

【数据结构】第三章:栈和队列 一、栈 1. 栈的定义 2. 栈的基本操作 二、顺序栈 1. 顺序栈的实现 2. 顺序栈的基本操作 3. 两种实现方式对比 3. 共享栈 三、链栈 1. 链栈的实现 2. 链栈的基本操作 四、队列 1. 队列的定义 2. 队列的基本操作 3. 双端队列 五、顺序队列 1. 顺序队列的实现 2. 顺序队列的基本操作 3. 三种实现方式对比 六、链队列 1. 链队列的实现 2. 链队列的基本操作 七、栈的应用 1. 括号匹配 2. 表达式求值 3. 递归 八、队列的应用 九、特殊矩

iFulling的博客 1687
上一篇: 数据结构 栈和队列部分代码c
下一篇: 数据结构第四章字符串部分代码c
@@老胡
博客等级 码龄7年 291粉丝 184原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值