• 链队


    #include<stdio.h>
    #include<stdlib.h>
    #include<malloc.h>
    typedef int type;
    typedef struct Node
    {
        type info;
        struct Node*next;
    }node;
    //队列声明,保存头指针,尾指针
    typedef struct
    {
        node *front;
        node *rear;
    }queue;
    //初始化一个空队列并返回其指针
    queue* init()
    {
        queue *head=(queue*)malloc(sizeof(queue));
        head->front=head->rear=NULL;
    }
    //打印一个队列
    void display(queue*head)
    {
        node *p=head->front;
        while(p){
            printf("%5d",p->info);
            p=p->next;
        }
        printf("
    ");
    }
    //入队
    void insert(queue*head)
    {
        node*pre;
        pre=(node*)malloc(sizeof(node));
        pre->next=NULL;
        scanf("%d",&pre->info);
        if(!head->front)//如果是空队列,则front和rear指针指向该节点
            head->front=head->rear=pre;
        else{//否则,在尾部插入
            head->rear->next=pre;
            head->rear=pre;
        }
    }
    //销毁一个队列
    void destory(queue*head)
    {
        node*pre=head->front,*p;
        while(pre)
        {
            p=pre->next;
            free(pre);
            pre=p;
        }
        free(head);
    }
    //出队
    void dele(queue *head)
    {
        node*p;
        if(!head->front)
            printf("NULL
    ");
        else{//非空队列
           p=head->front;
           head->front=p->next;
           free(p);
           if(!head->front)//如果是删除了最后一个节点,队列置空
            head->rear=NULL;
        }
    }
    //建立一个长度为n的队列
    void create(queue *head,int n)
    {
        int i;
        for(i=1;i<=n;i++)
            insert(head);
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    filter
    列表生成式
    迭代
    切片:练习
    Python FAQ
    活在深圳
    “30岁年薪20万算不算很失败?”人民日报这样回答
    ASP.NET Core 运行原理解剖[1]:Hosting
    Kotlin 初窥门径[2]:流程控制
    Kotlin 初窥门径[1]:基础概念
  • 原文地址:https://www.cnblogs.com/Thereisnospon/p/4768522.html
Copyright © 2020-2023  润新知