C语言数据结构队列的插入和删除
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
typedef int ElementType;
typedef struct Node *PtrToNode;
typedef int Status;/*队列中的结点*/
struct Node{ElementType Data;PtrToNode Next;
};
typedef PtrToNode Position;
//队列的头尾指针,分别指向头和尾
struct QNode
{Position Front,Rear;//队列的头尾指针int MaxSize; //队列的最大容量
};typedef struct QNode *Queue;Status IsEmpty(Queue Q)
{reutrn( Q->Front == NULL);
}
/*** 删除队首的结点* */
ElementType Delete( Queue Q)
{Position FrontCell;ElementType FrontElem;if( IsEmpty(Q)){printf("队列空");return ERROR;}else{FrontCell = Q->Front;if(Q->Front == Q->Rear) //如果队列只有一个元素Q->Front = Q->Rear = NULL;//删除后队列置为空elseQ->Front = Q->Front->Next;FrontElem = FrontCell->Data;free( FrontCell);return FrontElem;}
}/*** 向队列尾部添加结点* */
Status Add( Queue Q, ElementType e)
{PtrToNode newNode = (PtrToNode)malloc(sizeof(struct QNode));/*存储分配失败*/if(!newNode)exit(OVERFLOW);newNode->Data = e;newNode->Next = NULL; //新建的结点指向NULLQ->Rear->Next = newNode; //将新建的结点放在原来最后的后面Q->Rear = newNode; //把新建的结点设置称为队尾结点,即Rear指向s,指向最后一个结点}
C语言数据结构队列的插入和删除相关推荐
- c语言二叉排序树的创建与查找,C语言实现二叉查找树的插入和删除操作问题求教...
使用C语言实现二叉查找树的插入和删除操作,但在 return searchBST( T->rchild, val, f, p);出错.这里应该使用了双指针,求教应该怎么改才正确. /* +--- ...
- c语言数组指定位置插入和删除_玩转C语言链表,单链表/双向链表的建立/遍历/插入/删除...
最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合, ...
- 栈和队列的插入、删除等基本操作
栈和队列 栈 栈:是一种特殊的线性表,其只允许在其固定的一段进行插入或者删除元素等操作:进行插入或者删除的一段称为栈顶,另一端称为栈顶: 栈的特性: 先进先出 后进后出 栈的构造(C语言实现) 1. ...
- GO语言-数据结构-队列
目录 1.队列的顺序存储结构 1.1 队列顺序存储结构-结构体定义 1.2 队列顺序存储结构--初始化队列 1.3 队列顺序存储结构-入队 1.4 队列顺序存储结构-出队 1.5 完整代码 2.循环队 ...
- 栈和队列的插入、删除、获取头尾元素操作
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作.进行数据插入和删除操作的一端称为栈顶,另一端称为栈底.栈又称为后进先出的线性表. Stack.h #pragma once#inclu ...
- 栈的删除函数c语言,顺序栈的插入和删除
<顺序栈的插入和删除>由会员分享,可在线阅读,更多相关<顺序栈的插入和删除(5页珍藏版)>请在人人文库网上搜索. 1.实验四顺序栈的插入和删除姓名:学号: 日期:一.实验目的: ...
- 数据结构单链表插入和删除操作
单链表:先回顾单链表的特点 逻辑相邻 物理上不一定相连 首先初始化单链表,其中主要保存的是该节点自身的值以及下个节点的地址. 有效节点结构体设计: struct Node{ int data ...
- 舞伴配对问题c语言实训报告,C语言数据结构队列实现舞伴匹配(数据结构第二次实验)...
C语言实验作业 题目如下: 课程名称:数据结构 实验目的: 1.掌握队列的定义及实现: 2.掌握利用队列的基本操作. 实验要求: 1. 使用链式结构完成队列的各种基本操作: 2. 补充完善 ...
- C语言实现双向链表:插入和删除
抽象数据类型 typedef sturct DuLnode {int data;struct DuLnode* next, *prior; }DuLnode, *DuLinklist; 带头结点的双向 ...
- (数据结构)二叉排序树的插入、删除
关于插入不多说,主要讲讲删除操作的第三种情况吧. 前面的两种情况比较简单,包含了只有左或者只有右还有左右都没 有的 第三个情况就比较复杂,左右子树都存在,想删除这个节点(设为P)我们采 用取代的方法, ...
最新文章
- python将sklearn的RocCurveDisplay结果与PrecisionRecallDisplay结果合成为一个图
- 离职总结:大公司与小公司的个人体验
- python搭建selenium_了解搭建selenium安装以及配置环境
- Win7下的使用QTP进行猴子测试的性能日志实现方法
- php面试中的经典问题
- 【Redis】 redis hash getKey getValue 两个的性能差别
- Java基础学习总结(36)——Java注释模板
- 警告:MySQL-server-5.6.26-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
- java map size 不准确_java1.7以前ConcurrentHashMap的size方法
- mysql删除源码_mysql关于删除的命令实例源码删除数据库数据表等
- [高数]y=arccosx,y=arcsinx和y=arctanx的图像
- err = Problems with launching via XPC. XPC error : Connection interrupted (0x00000005)
- 蓝牙开发那些事儿(3)——看看空中包
- 那些年让人迷惑的同步、异步、阻塞、非阻塞
- 排序算法 - 冒泡排序
- Linux DDos防御
- KVM虚拟化之(1):CPU技术
- 投影机RS-232串口接口大全
- javascript中this指向问题(es5)
- 《信息安全技术 关键信息基础设施安全保护要求》国家标准在京发布