zoukankan      html  css  js  c++  java
  • C语言数据结构-队列Queue

    #ifndef __LINKQUEUE_H__
    #define __LINKQUEUE_H__
    
    
    #define TRUE 1
    #define FALSE 0
    #define OK 1
    #define ERROR 0
    #define INFEASIBLF -1
    #define OVERFLOW -2
    
    typedef int Status;
    
    typedef int QElemType;
    
    typedef struct QNode {
    	QElemType data;
    	struct QNode *next;
    }QNode, *QueuePtr;
    
    typedef struct {
    	QueuePtr front;
    	QueuePtr rear;
    }LinkQueue;
    
    #endif
    

      

    #include"LinkQueue.h"
    #include<stdlib.h>
    #include<stdio.h>
    
    Status InitQueue(LinkQueue &Q) {
    	Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode));
    	if(!Q.front) {
    		exit(OVERFLOW);
    	}
    
    	Q.front -> next = NULL;
    	return OK;
    }
    
    Status EnQueue(LinkQueue &Q, QElemType e) {
    	QNode *p = (QueuePtr)malloc(sizeof(QNode));
    	if(!p) {
    		exit(OVERFLOW);
    	}
    
    	p -> data = e;
    	p -> next = NULL;
    	Q.rear -> next = p;
    	Q.rear = p;
    	return OK;
    }
    
    Status DeQueue(LinkQueue &Q, QElemType e) {
    	if(Q.front == Q.rear) {
    		return ERROR;
    	}
    
    	QueuePtr p = Q.front -> next;
    	e = p -> data;
    	Q.front -> next = p -> next;
    	if(Q.rear == p) {
    		Q.rear = Q.front;
    	}
    	free(p);
    	return OK;
    }
    
    
    void show(LinkQueue Q) {
    	QueuePtr n = Q.front -> next;
    	printf(" ============ Q ============
    ");
    	while(n) {
    		printf("data = %d
    ", n -> data);
    		n = n ->next;
    	}
    }
    
    int main() {
    
    	LinkQueue Q;
    	InitQueue(Q);
    
    	EnQueue(Q, 1);
    	EnQueue(Q, 2);
    	EnQueue(Q, 3);
    
    	show(Q);
    
    	DeQueue(Q, 3);
    	DeQueue(Q, 3);
    	show(Q);
    	return OK;
    }
    

      

  • 相关阅读:
    Go
    Go
    Go -11 Go 框架beego的简单 create run
    文本处理工具之:grep sed awk
    Linux系统布置java项目
    docker 启动mysql 本地连接
    time
    多行查询数据合并成一行进行展示
    settings的使用
    xlsxwriter
  • 原文地址:https://www.cnblogs.com/maduar/p/13205656.html
Copyright © 2011-2022 走看看