卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章16482本站已运行3318

用C语言讲解删除队列中的元素

数据结构是以结构化方式组织的数据集合。它分为两种类型,如下所述 -

  • 线性数据结构 - 数据以线性方式组织。例如,数组、结构体、堆栈、队列、链表。

  • 非线性数据结构 - 数据以分层方式组织。例如,树、图、集合、表。

队列

它是一种线性数据结构,插入在后端完成,删除是在前端完成的。

用C语言讲解删除队列中的元素

队列的顺序是 FIFO – 先进先出

操作

  • 插入 – 将元素插入队列.
  • Delete – 从队列中删除一个元素。

条件

  • 队列溢出− 尝试将元素插入满队列。

  • 队列处于流状态 − 尝试从空队列中删除元素。

算法

下面给出的是插入 ( ) 的算法 -

  • 检查队列溢出。
if (r==n)
printf ("Queue overflow")
  • 否则,将一个元素插入到队列中。
q[r] = item
r++
给出的是一个删除算法的HTML代码:

Given below is an algorithm for deletion ( )

  • Check for queue under flow.
if (f==r)
printf ("Queue under flow")
<ul class="list"><li>否则,从队列中删除一个元素。</li></ul>
item = q[f]
f++

下面给出的是display ( )的算法 -

  • 检查队列是否为空。
  • if (f==r)
    printf("Queue is empty")
    • 否则,打印从‘f’到‘r’的所有元素。
    for(i=f; i<r; i++)
    printf ("%d", q[i]);

    程序

    以下是用于在队列中删除元素的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

卓越飞翔博客
上一篇: 通过从给定的二进制字符串中选择相等长度的子字符串,最大化给定函数
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏