zoukankan      html  css  js  c++  java
  • c语言编程之队列(链表实现)

           用链表实现了队列,完成了队列的入队和出队功能。

      1 #include"stdio.h"
      2 
      3 typedef int element;
      4 
      5 typedef struct Node{
      6         struct Node *next;
      7         element data;
      8 }*pNode;
      9 
     10 typedef struct QNode{
     11         pNode front,rear;
     12 }*Linknode;
     13 
     14 //init a empty queue
     15 element Init_queue(Linknode *pLinknode)
     16         {
     17            Linknode P;
     18            P=*pLinknode;
     19            P->front=P->rear=(pNode)malloc(sizeof(struct Node));
     20            P->front->next=P->rear->next=NULL;
     21         }
     22 
     23 //add a data to queue rear
     24 element Add_queue(Linknode *pLinknode,int num)
     25         {
     26           Linknode P;
     27           P=*pLinknode;
     28           pNode s=(pNode)malloc(sizeof(struct Node));
     29           s->data=num;
     30           s->next=NULL;
     31           P->rear->next=s;
     32           P->rear=s;
     33           printf("add data:%d
    ",P->rear->data);
     34         }
     35 
     36 //delet a data from queue front
     37 element Delet_queue(Linknode *pLinknode)
     38         {
     39           if(((*pLinknode)->front)==((*pLinknode)->rear))
     40                 {
     41                         printf("queue is empty!!");
     42                         return 0;
     43                 }
     44           Linknode P;
     45           pNode k;
     46           P=*pLinknode;
     47           k=P->front->next;
     48           P->front->next=k->next;
     49           printf("delet data:%d
    ",k->data);
     50           free(k);
     51           return 0;
     52         }
     53 
     54 element Print_queue(Linknode pLinknode)
     55         {
     56           pNode p;
     57           p=pLinknode->front;
     58           while(p!=pLinknode->rear)
     59                 {
     60                   p=p->next;
     61                   printf("data:%d
    ",p->data);
     62                 }
     63         }
     64 element main()
     65         {
     66           Linknode pQnode;
     67           pQnode=(Linknode)malloc(sizeof(struct QNode));
     68           Init_queue(&pQnode);
     69           Add_queue(&pQnode,99);
     70           Add_queue(&pQnode,11);
     71           Add_queue(&pQnode,22);
     72           Add_queue(&pQnode,33);
     73           Add_queue(&pQnode,44);
     74           Add_queue(&pQnode,55);
     75           Print_queue(pQnode);
     76           Delet_queue(&pQnode);
     77           Delet_queue(&pQnode);
     78           Delet_queue(&pQnode);
     79           Print_queue(pQnode);
     80           return 0;
     81         }
     82 
  • 相关阅读:
    Python的__init__.py用法
    Python中文
    使用apache进行域名绑定
    Storm入门之第二章
    Storm入门之第一章
    【RabbitMQ+Python入门经典】兔子和兔子窝 笔记
    RabbitMQ之Topics(多规则路由)
    RabbitMQ之比较好的资料
    RabbitMQ之路由
    RabbitMQ之发布订阅
  • 原文地址:https://www.cnblogs.com/qiuheng/p/5784009.html
Copyright © 2011-2022 走看看