使用C语言解释队列中元素的删除
数据结构是以结构化的方式组织数据的集合。它分为以下两种类型:
线性数据结构 − 数据以线性方式组织。例如,数组、结构体、栈、队列、链表。
非线性数据结构 − 数据以层次化的方式组织。例如,树、图、集合、表。
另请阅读: 数据结构和类型
队列
队列是一种线性数据结构,其中元素的插入在队尾进行,删除在队头进行。
队列的顺序是 FIFO – 先进先出
操作
- 插入 – 将元素插入队列。
- 删除 – 从队列中删除元素。
条件
队列溢出 − 尝试将元素插入到已满的队列中。
队列下溢 − 尝试从空的队列中删除元素。
算法
以下是插入 ( ) 的算法:
- 检查队列是否溢出。
if (r==n) printf ("Queue overflow")
- 否则,将元素插入队列。
q[r] = item r++
以下是删除 ( ) 的算法:
- 检查队列是否下溢。
if (f==r) printf ("Queue under flow")
- 否则,从队列中删除元素。
item = q[f] f++
以下是显示 ( ) 的算法:
- 检查队列是否为空。
if (f==r) printf("Queue is empty")
- 否则,打印从 ‘f’ 到 ‘r’ 的所有元素。
for(i=f; i<r; i++) printf ("%d", q[i]);
C语言删除队列元素的程序
以下是C语言删除队列元素的程序:
#include <stdio.h> #define MAX 50 void insert(); int array[MAX]; int rear = - 1; int front = - 1; main(){ int add_item; int choice; while (1){ printf("1.Insert element to queue
"); printf("2.Delete an element from queue
"); printf("3.Display elements of queue
"); printf("4.Quit
"); printf("Enter your choice : "); scanf("%d", &choice); switch (choice){ case 1: insert(); break; case 2: delete(); case 3: display(); break; case 4: exit(1); default: printf("Wrong choice
"); } } } void insert(){ int add_item; if (rear == MAX - 1) printf("Queue Overflow
"); else{ if (front == - 1) /*If queue is initially empty */ front = 0; printf("Inset the element in queue : "); scanf("%d", &add_item); rear = rear + 1; array[rear] = add_item; } } void display(){ int i; if (front == - 1) printf("Queue is empty
"); else{ printf("Queue is :
"); for (i = front; i <= rear; i++) printf("%d ", array[i]); printf("
"); } } void delete(){ if (front == - 1 || front > rear){ printf("Queue Underflow
"); return ; } else{ printf("Element deleted from queue is : %d
",array[front]); front = front + 1; } }
输出
执行上述程序后,将产生以下结果:
1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 1 Inset the element in queue: 12 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 1 Inset the element in queue: 23 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 1 Inset the element in queue: 34 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 2 Element deleted from queue is: 12 Queue is: 23 34 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 2 Element deleted from queue is: 23 Queue is: 34 1.Insert element to queue 2.Delete an element from queue 3.Display elements of queue 4.Quit Enter your choice: 4
广告