zoukankan      html  css  js  c++  java
  • 数据结构之队列(二)——链队列

    链队列采用带头结点的链表,队头指针始终指向头结点队尾指针始终指向最后一个元素

    当队列为空时:队头指针和队尾指针均指向头结点

    链队列不会满!!!

    链队列的定义:

    1.定义一种结点结构体:指针域指向下一个结点,数据域存储数据

    2.定义链队列结构体:分别存储两个结点指针,队头指针和队尾指针

    typedef char DataType;
    typedef struct Node{
    	DataType data;
    	struct Node* next;
    }LinkQueueNode;
    typedef struct Queue{
    	LinkQueueNode *front;
    	LinkQueueNode *rear;
    }LinkQueue;
    

      

    链队列的初始化

    队头指针和队尾指针相等且均为空

    bool InitQueue(LinkQueue* Q)
    {
    	Q->front=(LinkQueueNode*)malloc(sizeof(LinkQueueNode));
    	if(Q->front!=NULL)
    		{
    			Q->front->next=NULL;
    			Q->rear=Q->front;
    			return true;
    		}
    	else
    	{
    		return false;
    	}
    }
    

      

    入队:

    记得队尾的元素的next域为空

    bool EnterQueue(LinkQueue* Q,DataType x)
    {
    	LinkQueueNode *p;
    	p=(LinkQueueNode*)malloc(sizeof(LinkQueueNode));
    	if(p!=NULL)
    		{
    			p->data=x;
    			Q->rear->next=p;
    			p->next=NULL;//注意要赋空 
    			Q->rear=p;
    			return true;	
    		}
    	else
    	return false;
    }
    

      出对

    1.删除操作之间要判断是否为空

    2.要根据删除操作之后是否为空来决定队尾指针是否等于队头指针

    bool DelteQueue(LinkQueue* Q,DataType* x)
    {
    	LinkQueueNode* p;
    	//记住:删除操作之前要记得判断是否为空 
    	if(Q->front==Q->rear)
    		return false;
    	else
    		{
    			p=Q->front->next;
    			*x=p->data;
    			Q->front->next=p->next;
    			if(p==Q->rear)
    				Q->rear=Q->front; 
    	
    			free(p);
    			return true;
    		}
    }
    

      

    可以这样理解:1.判断是否为空

           2.使p=front-》next

           3.赋值给x

           4.使p出对:

    Q->front->next=p->next;
           

           5.判断p出对之后是否为空

              若为空:队尾指针等于队头指针

              若不为空:不做处理

          6.释放p

    亲爱的听众朋友我是你的代班DJ
  • 相关阅读:
    C#中利用iTextSharp开发二维码防伪标签(1)
    delphi 数据库中Connection与Query连接数量问题思考
    cPanel 安装方法
    招商行用卡人工服务方式
    软链接的创建和查看
    zencart低版本由php5.2.17升级PHP5.3环境下错误及解决方案
    EXCEL应用:高级筛选里的条件或和与的条件怎么写 例:不包含,包含等
    array_walk与array_map 的不同 array_filter
    zen cart global $db 这噶哒
    hdu 5655 CA Loves Stick
  • 原文地址:https://www.cnblogs.com/YTYMblog/p/5379471.html
Copyright © 2011-2022 走看看