zoukankan      html  css  js  c++  java
  • 队列的基本操作

    问题描述:

     设以带头结点的循环链表表示队列,并且只设一个指针指向队尾元素结点(注意不设头指针),试编写相应的队列初始化,入队列和出队列的算法。

    代码:      

    View Code
     1 #include<stdio.h>
     2 typedef  char QElemType;
     3 typedef struct QNode{
     4     QElemType data;
     5     struct QNode *next;
     6 }QNode, *QueuePtr;//结构体的定义,对这些的掌握应该要能不看书就能写出来的。//QNode为结构体类型,QueuePtr为结构体名
     7 typedef struct{
     8     QueuePtr rear;//指向队尾元素的指针
     9     int size;
    10 }queue;//queue为结构体名
    11 
    12 int InitQueue(queue &q)
    13 {
    14     q.rear=NULL;
    15     q.size=0;
    16     return 1;
    17 }
    18 int  EnQueue(queue &q, QElemType e)//入队列
    19 {
    20     QueuePtr p;
    21     p=new QNode;//比较new和malloc用法的区别
    22     if(p.size==0) return 0;
    23     p->data=e;
    24     p->next=q.rear->next;
    25     q.rear->next=p;
    26     q.rear=p;//队尾的指针在移动
    27     return 1;
    28 }
    29 int  DeQueue(queue &q,QElemType &e)//出队列
    30 {
    31     if(q.size==0) return false;
    32     if(q.size==1)
    33     {
    34         p=q.rear;
    35         e=p->data;
    36         q.rear=NULL;
    37         delete p;
    38     }
    39     else
    40     {
    41      QueuePtr p;
    42      p=q.rear->next;
    43      e=p->data;
    44      q.rear->next=p->next;
    45      delete p;
    46     }
    47     q.size--;
    48     return 1;
    49 }
    50 
    51 
    52 
    53 
    54 
    55 
    56 }

    总结:

      一步一步来,不着急,慢慢地赶上来,一切还来得及,按照自己原有的计划,先把书上的算法都弄明白后,然后再去看其他的,所以心里不能杂乱,渴求的是自己思考力,学习力的提高,其他的就不需要多想,保持平常心,平静!
     

  • 相关阅读:
    kibana ,logstash and filebeat
    The Run-Time Constant Pool The Constant Pool
    hsdb
    The Dataflow Model: A Practical Approach to Balancing
    编译器
    汇编
    状态机
    lsm-tree
    Serviceability
    JIT编译器
  • 原文地址:https://www.cnblogs.com/wj204/p/3048141.html
Copyright © 2011-2022 走看看