/*顺序表实现队列的一系列操作(设置flag标志不损失数组空间)*/ #include<stdio.h> #include<stdlib.h> #define Queue_Size 50 //队列的最大长度 #define OK 1 #define ERROR 0 typedef struct { int elem[Queue_Size]; //队列的元素空间 int front; //头指针指示器 int rear; //尾指针指示器 int flag; //flag,判断队列是…
/*链表实现队列的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 typedef struct node { int data; //数据域 struct node *next; //指针域 }LinkQueueNode; typedef struct { LinkQueueNode *front; //头指针 LinkQueueNode *rear; //尾指针 }LinkQueu…
1.数据结构-循环队列的实现-C语言 #define MAXSIZE 100 //循环队列的存储结构 typedef struct { int* base; //基地址 int _front; //头指针 int _rear; //尾指针 } SqQueue; //构造空队列---1 void InitQueue(SqQueue* Q); //队列的销毁---2 void DestroyQueue(SqQueue* Q); //队列的清空---3 void ClearQueue(SqQueue*…
今日在处理数据存储的问题中,数据占用的空间较大,在询问之下,提及循环队列. 没有学习过的我,想想就是头大,只能慢慢从网上找资料,一个字母一个字母的敲,最后,还是慢慢的对队列有了一些理解 对于循环队列有几个操作: 1.初始化 2.入队 3.出队 4.遍历队列 5.判队列空,判队列满 具体如何实现,我会在下面通过代码实现 在对循环队列操作之前,先要建立队列结构体元素, typedef struct Queue { int * BUF; int front; int rear; }QUEUE; 1.初…
#include <stdio.h>#include <stdlib.h>#include <stdbool.h> typedef struct queue{ int * pBase ; //数组 int front ; //头 int rear ; //尾 rear不存放数据,所以rear前面的是最后一个数据}QUEUE ; void init_queue(QUEUE * pQ); bool full_queue(QUEUE * pQ); bool en_queue(…
/*链表实现栈的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define OK 1 #define ERROR 0 typedef struct node { int data; struct node *next; }LinkStackNode,*LinkStack; /**********************各个子函数的定义*********************/ void initStack(LinkStack *top…
/*顺序表实现栈的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define Stack_Size 50 //设栈中元素个数为50 #define OK 1 #define ERROR 0 typedef struct { int elem[Stack_Size]; //用来存放栈中元素的一维数组 int top; //用来存放栈顶元素的下标,top为 -1 表示空栈 }SeqStack; /**********************…
一.简述 空队列的处理方法:1.另设一个标志位以区别队列是空还是满:2.少用一个元素空间,约定以队列头指针在队尾指针下一位置上作为队列呈满的状态的标志. 二.头文件 //3_4_part1.h /** author:zhaoyu email:zhaoyu1995.com@gmail.com date:2016-6-9 note:realize my textbook <<数据结构(C语言版)>> */ //Page 64 #include <cstdio> #inclu…
一.什么是队列,换句话说,队列主要特征是什么? 四个字:先进先出 六个字:屁股进,脑袋出 脑补个场景:日常排队买饭,新来的排在后面,前面打完饭的走人,这就是队列: OK,思考一个问题,我为什么写了两种实现,它们的区别是什么,哪个性能更好一些? 我觉得学习一定要带着问题来学习: 二.队列的两种实现 1.数组队列 数组队列比较简单,基于之前写的动态数组所实现的,基本方法都是根据队列的特性从而选择性的调用动态数组的方法来实现的. public class ArrayQueue<E> implemen…
Code: package dataStucture2.stackandqueue; /** * 手写循环队列 * * @param <E> */ public class MyLoopQueue<E> implements Queue<E> { /* * 成员变量:泛型数组.两个指向变量.循环队列个数size */ private E[] data; private int front, tail; private int size; // 有参构造,初始化数组容量大…