精华内容
下载资源
问答
  • C语言队列出队

    2019-12-05 19:49:17
    int OutQueue(LinkQueue *Q,char *x)//出队操作 { QNode *p; if(Q->front==Q->rear) { return 0; free(p); } else {`在这里插入代码片` p=Q->front->next; strcpy(x,p->data); Q->.....
    int OutQueue(LinkQueue *Q,char *x)//出队操作 
    {
     QNode *p;
     if(Q->front==Q->rear)
     {
       return 0;
       free(p);
     }
      
     else
     {`在这里插入代码片`
      p=Q->front->next;
         strcpy(x,p->data);
         Q->front->next=p->next;
         if(p->next==NULL)//**这个判断非常重要不然头、尾节点不会相等!
         {
          Q->rear=Q->front;
         }
         free(p);
         return 1; 
     }
    }
    

    在这里插入图片描述

    展开全文
  • C语言队列的基本操作

    2016-02-20 20:18:10
    C语言队列的基本操作 入队 出队 对的初始化
  • #include<stdio.h> #include<stdlib.h> #define ERROR 0 #define OK 1 #define MaxSize 20 typedef int ElementType; typedef int Status;... //front 指向队列中队首的前一个 }; typedef st
    #include<stdio.h>
    #include<stdlib.h>
    #define ERROR 0
    #define OK 1
    #define MaxSize 20
    
    typedef int ElementType;
    typedef int Status;
    
    struct QNode
    {
        ElementType Data[MaxSize];
        int rear;
        int front;
        //front 指向队列中队首的前一个
    };
    typedef struct QNode *Queue;
    
    /**
     * 将元素放入队列
     * */
    void AddQ(Queue Q,ElementType item)
    {
        //1.先判断队列是否已满,满退出
        if((Q->rear+1) % MaxSize == Q->front)
        {
            printf("队列满");
            return;
        }
        //2.如果没满,将元素放在rear+1处
        else
        {
            Q->Data[++Q->rear] = item;
        }
        
    }
    /**
     * 将元素弹出队列
     * */
    ElementType DeleteQ(Queue PtrQ)
    {
        if(PtrQ->front == PtrQ->rear)
        {
            printf("队列空");
            return ERROR;
        }
        else
        {
            PtrQ->front = (PtrQ->front + 1) % MaxSize;
            return PtrQ->Data[PtrQ->front];
        }
        
    
    }
    
    展开全文
  • C语言 队列

    2018-06-05 01:20:27
    队列简介 代码实现 ...队列简介 ... 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear...* 出队:只能从队头出 代码实现 ADT: #include &amp;amp;amp;l...

    队列简介

    队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

    即:
    * 插入:只能插入在链表最后
    * 出队:只能从队头出

    代码实现

    ADT:

    #include <stdio.h>
    #include <malloc.h>
    #include <memory.h>
    #define QUETYPE char
    
    typedef struct node {
        QUETYPE data;
        struct node *next;
    } QueueNode, *QueueNodePtr;
    
    typedef struct {
        QueueNodePtr head;
        QueueNodePtr tail;
    } Queue, *QueuePtr;
    
    QueuePtr createQueue();
    QueueNodePtr createQueueNode(QUETYPE key);
    void insertQueue(QueuePtr q, QUETYPE key);
    QUETYPE outQueue(QueuePtr q);
    void deleteQueue(QueuePtr q);
    

    完整代码:

    #include <stdio.h>
    #include <malloc.h>
    #include <memory.h>
    #define QUETYPE char
    
    typedef struct node {
        QUETYPE data;
        struct node *next;
    } QueueNode, *QueueNodePtr;
    
    typedef struct {
        QueueNodePtr head;
        QueueNodePtr tail;
    } Queue, *QueuePtr;
    
    QueuePtr createQueue() {
        QueuePtr q = (QueuePtr)malloc(sizeof(Queue));
        memset(q, 0, sizeof(Queue));
        q->head = q->tail = NULL;
        return q;
    }
    
    QueueNodePtr createQueueNode(QUETYPE key) {
        QueueNodePtr q = (QueueNodePtr)malloc(sizeof(Queue));
        memset(q, 0, sizeof(Queue));
        q->next = NULL;
        q->data = key;
        return q;
    }
    
    void insertQueue(QueuePtr q, QUETYPE key) {
        QueueNodePtr a = createQueueNode(key);
        if (q->head == NULL) {  //notice
            q->head = q->tail = a;
        }
        else {
            q->tail->next = a;
            q->tail = a;
        }
    }
    
    QUETYPE outQueue(QueuePtr q) {
        QUETYPE v;
        if (q->head != NULL) {   //notice
            v = q->head->data;
            QueueNodePtr tmp = q->head->next;
            free(q->head);
            q->head = tmp;
        }
        else {
            v = NULL;
        }
        return v;
    }
    
    void deleteQueue(QueuePtr q) {
        if (q->head != NULL) {  //notice
            QueueNodePtr tmp = q->head;
            QueueNodePtr tmp2;
            while (tmp != NULL) {
                tmp2 = tmp;
                tmp = tmp->next;
                free(tmp2);
            }
        }
        free(q);
    }
    
    void main() {
        QueuePtr q = createQueue();
        for (int i = 0; i < 5; i++) {
            insertQueue(q, i);
        }
        outQueue(q);
        deleteQueue(q);
    }
    展开全文
  • C语言队列实现

    2017-07-06 16:05:18
    主要功能,入队、出队、显示当前队列元素。 二,代码实现//队列演示 #include #define QUEUE_LENGTH 100//仅能处理非负整数 struct Queue { int element[QUEUE_LENGTH]; int head; int tail; };int Que

    兄弟们,今日头条搜索三线城市程序员老陈关注我,我将持续不断推出视频教程。

    一,简介

    开发环境是VC6.0,实现了一个基于C语言的队列。
    主要功能,入队、出队、显示当前队列元素。
    

    二,代码实现

    //队列演示
    #include<stdio.h>
    #define QUEUE_LENGTH 100
    
    //仅能处理非负整数
    struct Queue 
    {
    	int element[QUEUE_LENGTH];
    	int head;
    	int tail;
    };
    
    int QueueIn(struct Queue* p,int num)
    {
    	//满了
    	if(p->tail>QUEUE_LENGTH-1)
    	{
    		return -1;
    	}
    	p->element[p->tail]=num;
    	p->tail++;
    	return 1;
    }
    
    int QueueOut(struct Queue* p)
    {
    	if(p->head==p->tail)
    		return -1;
    	return 	p->element[p->head++];
    }
    
    void PrintQueue(struct Queue* p)
    {
    	int position=p->head;
    	while(position!=p->tail)
    	{
    		printf("%d ",p->element[position]);
    		position++;
    	}
    	printf("\n");
    }
    
    int main()
    {
    	//初始化
    	struct Queue queue;
    	queue.head=0;
    	queue.tail=0;
    	QueueIn(&queue,1);
    	QueueIn(&queue,2);
    	PrintQueue(&queue);
    
    	QueueOut(&queue);
    	PrintQueue(&queue);
    	QueueOut(&queue);
    	PrintQueue(&queue);
    	QueueOut(&queue);
    	PrintQueue(&queue);
    
    	QueueIn(&queue,3);
    	PrintQueue(&queue);
    	return 1;
    }
    
    展开全文
  •  队列中一个元素出队后,怎么将该元素在数组里的内容抹掉?</p>
  • 队列(循环队列队列是只允许在一端进行插入操作,在另一端进行删除操作的线性表。...出队示意图 代码: #include "stdafx.h" const int QUEUESIZE = 6; typedef int ElemType; ElemType data[QUEUESIZE]
  • C语言队列的基本实现

    2021-03-13 16:41:53
    队列C语言实现 FIFO 队头front,队尾tail,大小size 操作:入队,出队,获取队头元素,判断是否为NULL 数组队列,链式队列。 链式队列的实现: #include <stdio.h> #include<stdlib.h> /** * 队列...
  • C语言队列学习

    2018-01-18 20:37:42
    线性表(线性结构):数据中元素之间关系为一对一,即除了第一个元素和最后一位元素外,其他元素均有...队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作,这叫出队,而在队列的尾部(tail)进行插
  • 队列 顺序实现 #define MaxSize 10 typedef struct{ ElemType data[MaxSize];//静态数组存放队列元素 int front,rear;//头和队尾指针 }SqQueue; 循环队列——入队 bool EnQueue(SqQueue &Q,ElemType x){ ...
  • C语言队列的理解

    千次阅读 2017-01-06 17:03:39
     队列的数据元素称为队列元素,在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队,因为队列只允许在一段插入,一端删除,所以只有最早进入队列 的元素才能从队列中删除,故队列
  • (2)首的标记,用来出队列使用; (3)队尾的标记,用来加入元素使用; 完成上述工作需要用结构体定义队列的三个初始属性: 按照队列的特点需要完成一下几点: (1)队列初始化,由于定义的结构体里只是定义了...
  • 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先 FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为头。 2.队列的...
  • 队列队列定义队列的基本操作队列的实现队列的定义队列的初始化队列增容入队和出队获取队头或队尾获取元素数量销毁队列 队列定义 队列:是一种特殊的线性表只允许在一端进行插入数据操作,在另一端进行删除数据操作...
  • C语言数据结构链队列(创建、入队、出队、取对头元素、遍历)C语言数据结构链队列(创建、入队、出队、取对头元素、遍历)/**链队列的相关操作*创建一个rear和front指针的结构体*创建一个链表的结构体*初始化时rear和...
  • 1.顺序队列的常用基本操作及条件判断 队空: Q.front=Q.rear 队满: Q.rear=Maxlen ...出队: 1)将front指示的元素取出。 2)front = front + 1队头指针加一 2.顺序队列的类型定义 #define ...
  • 队列是是一种先进先出(FIFO)的线性表,只允许在一端进行插入(入队)操作,在另一端进行删除(出队)操作。 队列中,允许入队操作的一端叫做队尾,允许出队操作的一端叫做队头。 和之前的栈一样,C语言实现分两种...
  • C语言队列的实现

    2012-04-24 12:44:45
    作者:朱克锋    队列是一种特殊的线性表,它只允许在表的前端进行删除操作,而在表...反之最后插入的元素将最后被删除,因此队列又称为“先进先”(FIFO—first in first out)的线性表。 还有一种双向的Queue
  • C语言使用链表队列实现初始化,出队列,入队列,取头,遍历 1.C语言使用链表队列实现初始化,出队列,入队列,取头,遍历 #include<stdio.h> #include<stdlib.h> #include<malloc.h> typedef...
  • 舞伴问题:男女站成两依次结成舞伴,两人数不同,人数多的队伍则会出现无人匹配的情况,所以多的人等待下一轮其他组完成跳舞,再继续结成舞伴。 #include <stdio.h> #include <stdlib.h> #...
  • C语言实现链队基本操作基本操作定义链式队列存储结构初始化求长度入队出队取头元素遍历整合测试代码 基本操作 定义链式队列存储结构 //队列的链式存储结构 typedef struct QNode { SElemType data; struct QNode...
  • C语言环形队列

    2014-03-27 09:11:33
    C语言写的环形队列,实现队列的入队 出队
  • C语言--实现队列的入队出队

    千次阅读 2017-06-03 20:38:41
    《程序员面试宝典》 实现队列入队/出队操作
  • printf("\n输入队列元素"); scanf("%d",&p); if(p>0) {printf("\n输入第%d个队列元素",p); while(p>0) {scanf("%d",&s); q=(JD*)malloc(sizeof(JD)); q->data=s; q->link=NULL; rear->link=q; ...
  • //队列(新建,出队,入队等操作) typedef struct node { int data; struct node *next; }Node; typedef struct myQueue { int size; Node *front; Node *rear; }my_Queue; #include <stdio.h> #include...
  • 出队列:进行删除操作的一端称为头 其实队列换一种说法就是我们文明生活中的 排队问题,不管干什么一般总是遵守先来后到的, 就是先来的(对头)先获取到资源,后来的不准插队,只能在最后面(队尾)排队等待。...
  • 数据结构——C语言实现队列的初始化,入队出队,查看等操作 #define _CRT_SECURE_NO_WARNINGS 1 #include &lt;assert.h&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #...
  • C语言实现队列

    2020-10-07 22:56:08
    C语言实现队列基本操作-初始化,入队,出队,打印,删除 C语言: #include <stdio.h> #include <stdlib.h> // 队列的实现 #define OVERFLOW -2 #define OK 1 #define ERROR 0 typedef int Status; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 729
精华内容 291
关键字:

c语言队列出队

c语言 订阅