• 2024-09-166、栈
    1、顺序栈#include<stdio.h>#include<malloc.h>#include<assert.h>#defineElemTypeint#defineSTACK_INIT_SIZE8#defineSTACK_INC_SIZE3//顺序栈的定义typedefstructSeqStack{ElemType*base;intcapacity;inttop;
  • 2024-09-14队列的定义和基本操作的实现
    写代码:定义顺序存储的队列(数组实现),要求数组空间可以被循环利用 写代码:基于上述定义,实现“出队、入队、判空、判满”四个基本操作 写代码:定义链式存储的队列(单链表实现) 写代码:基于上述定义,实现“出队、入队、判空、判满”四个基本操作 1.定义顺序存储的队列(数组实现),要
  • 2024-09-12数据结构——队列
    1、定义从栈的学习我们知道栈是只允许在一端进行插入或删除操作的线性表。而队列:是只允许在一端进行插入在另一端删除的线性表。在生活中比如说到饭堂排队打饭,一端进一端出,这就是队列。2、队列顺序实现2.1、队列的基本形式typedefintElemtype;//需要时可以改为自己需要
  • 2024-07-28408 数据结构栈算法
    第二章栈2.1顺序栈顺序栈的基本操作#defineMAXSIZE128typedefintElemType;typedefstruct{ ElemTypedata[MAXSIZE]; //用数组实现对栈中元素的存取 inttop; //栈顶指针 intlength; //栈的长度}SqStack;//初始化栈voidinitStack(SqStack&S);//判
  • 2024-07-28408 数据结构队列算法
    第三章队列3.1顺序队列#defineMAXSIZE64typedefintElemType;typedefstruct{ ElemTypedata[MAXSIZE]; intfront; //队头指针 intrear; //队尾指针 intsize; //队列大小}SeQueue;//初始化队列voidinitQueue(SeQueue&Q){ //对数据元素进行初始化,防止出现
  • 2024-07-21数据结构:栈的基本概念、顺序栈、共享栈以及链栈
    相关概念栈(Stack)是只允许在一端进行插入或删除操作的线性表。栈顶(Top):线性表允许插入删除的那一端。栈底(Bottom):固定的,不允许进行插入和删除的另一端。栈的基本操作InitStack(&S):初始化一个空栈S。StackEmpty(S):判断一个栈是否为空,若栈S为空则返回true,否则返回false。
  • 2024-07-21数据结构——栈
    一、栈的定义我们都知道线性表是具有相同数据类型的n(n为表长且n>=0)个数据元素的有限序列。而栈,是只允许在一端进行插入或删除操作的线性表。就如汉罗塔相似,你只能从头顶放入或拿走方块。  重要术语:栈顶、栈底、空栈我们从图就很容易理解这三个术语:空栈:指线性表内
  • 2024-07-13数据结构,(动态)顺序表,C语言实现
    ——如果代码存在问题,请务必评论告诉我,感激不尽(#^.^#)——动态和静态的顺序表差别主要在于开辟内存的方式,动态顺序表中的数据所在内存是通过malloc函数实现的,这也意味着,动态顺序表可以更改存储数据的内存大小,其他的话基本没什么差别1.数据类型定义 structElemType想要建
  • 2024-07-106-栈的链式存储类型
    #include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedefintElemType;/*栈的链式存储类型*/typedefstructStackNode{/*数据域*/ElemTypedata;/*指针域*/structStackNode*next;}StackNode,*LinkStack;/*栈类型定义*//**
  • 2024-07-105-顺序栈的操作
    #include<stdio.h>#include<stdlib.h>#include<stdbool.h>typedefintElemType;/**/#defineMaxSize50/**/typedefstruct{ElemTypedata[MaxSize];/*top:数组索引从0开始=MaxSize-1*/inttop;}SqStack;/*初始化栈*/voidInit
  • 2024-07-08洛谷p1449后缀表达式题解
    #include<stdio.h>#include<stdlib.h>#defineMAXSIZE100typedeflongElemType;typedefstruct{ ElemType*base; ElemType*top; intStackSize;}sqStack;voidInitStack(sqStack*s){ s->base=(ElemType*)malloc (MAXSIZE*sizeof(ElemTyp
  • 2024-06-05【第三节】C/C++数据结构之栈与队列
    目录一、数据结构-栈1.1栈的定义1.2栈的ADT(AbstractDataType)1.3栈的顺序存储结构及实现二、数据结构-队列2.1队列的定义2.2队列的ADT2.3队列的顺序存储结构与实现2.4优先队列一、数据结构-栈1.1栈的定义栈(Stack)可以看成是一种特殊的线性表。限
  • 2024-05-28实现双链表各种基本运算的算法
    实验三:实现双链表各种基本运算的算法一、实验目的与要求目的:领会双链表存储结构和掌握双链表中各种基本运算算法设计。内容:编写一个程序dlinklist.cpp,实现双链表的各种基本运算和整体建表算法(假设链表的元素类型ElemType为char),并在此基础上设计一个程序exp2-3.cPp,
  • 2024-04-07顺序栈和链栈的部分功能完整代码
    一、顺序栈代码#include<iostream>#include<stdlib.h>usingnamespacestd;#defineOK1#defineERROR0#defineMAXSIZE100typedefintElemType;typedefintStatus;typedefstruct {   ElemType*elem;   inttop;}Sqstack;StatusInitStack(Sqsta
  • 2024-04-05数据结构——顺序表
    一、线性表的顺序储存(连续)表示顺序存储的定义:逻辑上相邻的数据元素存储在物理上相邻的存储单位中存储结构。二、线性表的顺序表示和实现        1、线性表存储空间分配#defineList_size100 //存储空间初始分配量typedefintElemtype;// 静态分配typedefst
  • 2024-03-24单链表删除相同的元素
    #include<iostream>#include<stdlib.h>usingnamespacestd;#defineerror-1#defineok1typedefintStatus;typedefintElemType;typedefstructLNode{ ElemTypedata; LNode*next;}LNode,*LinkList;StatusCreateList(LinkList&L,int
  • 2024-03-19C++类实现顺序表
    环境:vscodesequencelist.h#ifndefSEQUENCELIST_H#defineSEQUENCELIST_H#defineMAXSIZE20//最大存储容量typedefintElemType;classSqList{public:SqList();//SqList(ElemTypeelems[],intn);//有参构造器~SqLis
  • 2024-02-11【数据结构】C语言实现栈的相关操作
    栈栈是一种遵循先入后出逻辑的线性数据结构,是只能在表的一端进行插入和删除运算的线性表进行插入和删除的一端的称为栈顶,另一端称为栈底栈的操作规则是后进先出或者是先进后出栈可以用数组或者链表实现,用数组实现的叫做顺序栈,用链表实现的叫做链栈顺序栈表示(数组)在数组上
  • 2023-10-29栈和队列
    栈和队列栈栈的定义引用《数据结构》严蔚敏中关于栈的定义:栈是限定仅在表尾进行插入或删除操作的线性表。首先,栈是一种线性表,其中的元素仍然具有前驱和后继的逻辑结构;其次,栈的基本操作被限定在了表尾,我们只能从表尾进行插入和删除操作。这导致栈中的元素具有所谓后进先出(La
  • 2023-10-20北林OJ_243
    #include<iostream>usingnamespacestd;#defineOK1#defineERROR0#defineMaxSize100typedefintElemType;//定义栈_顺序栈structStack{ ElemType*top; ElemType*base; intstacksize;};intIsFull(Stacks);intIsEmpty(Stacks);//初始化intInitStac
  • 2023-10-19线性表
    由n个数据元素(节点)组成的有序序列,数据元素之间具有线性关系.基本操作初始化取值插入查找删除intLength()const;boolEmpty()const;voidClear();voidTraverse(void(*visit)(constElemType&));//依次对线性表的每个元素调用函数(*visit)boolGetElem(int
  • 2023-10-19栈和队列
    栈先进后出,后进现出限定仅在表的一端进行插入和删除操作的线性表操作初始化入栈出栈取值判断栈满栈空双栈共享顺序栈//顺序栈类模板template<classElemType>classSqStack{protected://数据成员: ElemType*elems; //元素存储空间 intmax
  • 2023-10-18《数据结构》王卓老师 p48-p62学习反馈
    跟着青岛大学-王卓老师的视频进行到链队列时,运行链队列代码的时候遇到了两个问题:1.)ProgramreceivedsignalSIGSEGVSegmentationfault附代码: #include<stdio.h> #include<stdlib.h> typedefchar ElemType; typedefstructqnode{ ElemTypedata; structq
  • 2023-10-0303 顺序栈
    实现计算器,但出了bug,不想改了,思路没问题就行#include"stdio.h"#include"stdlib.h"#include"malloc.h"#include"ctype.h"//查查这些头文件的作用typedefintelemtype;//将所有的float类型都转换为elemtype,没必要也许//(1)顺序栈typedefstructStack{e
  • 2023-09-212023.09.21
      今天学习了数据结构栈和队列。采用顺序存储的栈称为顺序栈,它利用一组地址连续的存储单元存放自栈底到栈顶的数据元素,同时附设一个指针(top)指示当前栈顶元素的位置。若存储栈的长度为StackSize,则栈顶位置top必须小于StackSize。当栈存在一个元素时,top等于0,因此通常把空栈的判