zoukankan      html  css  js  c++  java
  • 链队列基本运算(实验题3.4)

    虽然都是基本的数据结构,也很简单,但是亲自打下代码还是收获不小。

    都是编译过了的。

    //
    //LiQueue.h
    //链队基本运算
    //2013-10-15 22:49
    //
    
    #pragma once
    
    typedef int ElemType;
    
    struct QNode
    {
     	ElemType data;
    	QNode* next;
    };
    
    struct LiQueue
    {
    	QNode* front;
    	QNode* rear;
    };
    
    
    void InitQueue(LiQueue* &q);
    
    void ClearQueue(LiQueue* &q);
    
    void enQueue(LiQueue* &q,ElemType e);  //进队
    
    int deQueue(LiQueue* &q,ElemType& e);  //出队
    
    void DisQueue(LiQueue* q);
    


     

    #include "LiQueue.h"
    #include <malloc.h>
    #include <stdio.h>
    
    
    void InitQueue( LiQueue* &q )
    {
    	q = (LiQueue*)malloc(sizeof(LiQueue));
    	q->front = q->rear = NULL;
    }
    
    void ClearQueue( LiQueue* &q )
    {
    	QNode* p = q->front,*t = p->next;
    	while( NULL != t)
    	{
    		free(p);
    		p = t;
    		t = t->next;
    	}
    }
    
    void enQueue( LiQueue* &q,ElemType e )
    {
    	QNode* s = (QNode*)malloc(sizeof(LiQueue));
    	s->data = e;
    	s->next = NULL;
    
    	if (q->rear == NULL)  //空队
    	{
    		q->rear = q->front = s;
    	} 
    	else
    	{
    		q->rear->next = s;
    		q->rear = s;
    	}
    }
    
    int deQueue( LiQueue* &q,ElemType& e )
    {
    	if (q->rear == NULL)  //空队
    	{
    		return 0;
    	}
    	
    	QNode* t = q->front;
    	e = q->front->data;
    
    	if ( q->front == q->rear)
    	{
    		q->front = q->rear = NULL;
    	}
    	else
    	{
    		q->front = q->front->next;
    	}
    
    	free(t);
    	return 1;
    }
    
    void DisQueue( LiQueue* q )
    {
    	if (q->front == NULL)
    	{
    		return;
    	}
    	QNode* p = q->front;
    	while(p != q->rear)
    	{
    		printf("%d,",p->data);
    		p = p->next;
    	}
    	printf("%d,",p->data);
    
    	printf("
    ");
    }


     

    #include "LiQueue.h"
    
    int main()
    {
    	LiQueue* q;
    	InitQueue(q);
    	enQueue(q,1);
    	DisQueue(q);
    	enQueue(q,2);
    	DisQueue(q);
    	enQueue(q,3);
    	DisQueue(q);
    	enQueue(q,4);
    	DisQueue(q);
    	enQueue(q,5);
    	DisQueue(q);
    	ElemType data;
    	deQueue(q,data);
    	DisQueue(q);
    
    	ClearQueue(q);
    	return 0;
    }


     

  • 相关阅读:
    noip不知道哪年 货车运输
    bzoj1002轮状病毒
    bzoj1001狼抓兔子
    20171002模拟赛
    20171001模拟赛
    异常
    springmvc-servlet.xml 第二种选择
    springmvc入门
    springmvc-servlet.xml(springmvc-servlet.xml 配置 增强配置)
    777
  • 原文地址:https://www.cnblogs.com/phisy/p/3371889.html
Copyright © 2011-2022 走看看