队列的链式存储结构的实现3——完结编

//  Filename    :   list_queue.c
//  Authot      :   LupingChen
//  Data        :   2014.06.01
//  Content     :   main\clear

#include <stdio.h>
#include <stdlib.h>

//定义节点数据类型
typedef struct Node {
    int data;//节点数据
    struct Node* next;//记录下一节点地址
} Node;

//定义队列数据类型
typedef struct {
    Node* head;//头指针
}

//清除队列所有元素
void clear(Queue* pq);

int main(void)
{
    push(&queue, 11);
    travel(&queue);
    push(&queue, 22);
    travel(&queue);
    push(&queue, 33);
    travel(&queue);
    printf("%s\n", empty(&queue)?"队列为空":"队列没空");
    printf("%s\n", full(&queue)?"队列为满":"队列没满");

    printf("-----------------------------------------\n");
    travel(&queue);
    printf("出队元素是%d\n",pop(&queue));
    printf("队首元素是:%d\n", get_head(&queue));
    printf("队尾元素是:%d\n", get_tail(&queue));
    printf("队列元素个数是:%d\n", size(&queue));
    clear(&queue);
    return 0;
}

//清除队列所有元素
void clear(Queue* pq)
{
    while (pq->head != NULL)
    {
        Node* p = pq->head;
        pq->head = p->next;
        free(p);
        p = NULL;
    }
}

时间: 2024-10-30 04:54:10

队列的链式存储结构的实现3——完结编的相关文章

数据结构:队列的链式存储结构

链队列的实现方法: 队列的链式存储结构,其实就是线性表的单链表,只不过它只能尾进头出而已,简称为链队列.为了操作上的方便,我们将队头指针指向链队列的头节点,而队尾指针指向终端节点.空队列时,front和rear都指向头节点. 注意:这里的实现是有头结点的,在队列的初始化函数中要为头结点开辟空间. 链队列的实现代码: #include <iostream> #include <stdlib.h> using namespace std; /**********************

队列的链式存储结构及实现

ref : https://blog.csdn.net/qq_29542611/article/details/78907339 队列的链式存储结构,其实就是线性表的单链表,只不过它只是尾进头出而已,我们把它简称为链队列.为了操作上的方便,我们将队头指针指向链队列的头结点,而队尾指针指向终端节点.如果 空队列时,front和rear都指向头结点. 入队操作: 在队尾添加元素,先将队尾元素的next指向添加的元素,然后将队尾指针重新指向新的队尾即可. 出队操作: 头结结点指向的结点即为队头结点,出

队列的链式存储结构(C语言实现)

1 #include <stdio.h> 2 #include <stdlib.h> 3 4 #define OK 1 5 #define ERR 2 6 #define TRUE 1 7 #define FALSE 0 8 9 typedef int status; //定义函数返回的状态,OK & ERR 10 typedef char datatype; //定义队列中每个元素的数据类型,这里暂定为字符型 11 12 typedef struct LinkQueue_

队列的链式存储结构

1 链队列的存储结构 将对头指针front指向链队列的头结点,队尾指针rear指向终端结点. 空队列时,头指针front和尾指针rear都指向头结点. 链队列的存储结构为: typedef int QElemType; typedef struct QNode { //结点结构 QElemType data; struct QNode *next; }QNode; typedef struct QNode * QueuePtr; typedef struct { //队列的链表结构 QueueP

队列的链式存储结构的实现2 —— 出队查看队首尾元素计算元素个数

// Filename : list_queue.c // Author : LupingChen // Data : 2015.05.30 // Content : create\destory\full\empty\push #include <stadio.h> #include <stdlib.h> //定义节点数据类型 typedef struct Node { int data;//节点数据 struct Node* next;//记录下一节点地址 } Node; //

(源代码见大话数据结构)线性表—队列的链式存储结构-&gt;出队&amp;入队&amp;建立空队列

#include <stdio.h> #include <stdlib.h> #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define MAXSIZE 20 #define OVERFLOW 0 typedef int Status; typedef int QElemType; typedef struct QNode//标识符和类型名一样不知道什么用意.. { QElemType data; stru

队列的链式存储结构的实现1 —— 创建销毁判断满空入队

// Filename : list_queue.c // Author : LupingChen // Data : 2015.05.30 // Content : create\destory\full\empty\push #include <stadio.h> #include <stdlib.h> //定义节点数据类型 typedef struct Node { int data;//数据 struct Node* next;//记录下一节点地址 } Node; //定义

Java数据结构系列之——队列(3):队列的链式存储结构及其实现

package queue.linkQueue; public class Node { // 数据域 Object element; // 指针域 Node next; // 头结点初始化 public Node(Node next) { this.next = next; } // 非头结点初始化 public Node(Object element, Node next) { this.element = element; this.next = next; } } ***********

队列的顺序存储结构和链式存储结构

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表(在队尾进行插入操作,在对头进行删除操作). 与栈相反,队列是一种先进先出(First In First Out, FIFO)的线性表. 与栈相同的是,队列也是一种重要的线性结构,实现一个队列同样需要顺序表或链表作为基础. 队列的链式存储结构 队列既可以用链表实现,也可以用顺序表实现.跟栈相反的是,栈一般我们用顺序表来实现,而队列我们常用链表来实现,简称为链队列. typedef struct QNode { ElemT