zoukankan      html  css  js  c++  java
  • 队列——链表实现

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    
    using namespace std;
    
    using ElemType = int;
    
    // 队列结点 
    class Node {
    public:
    	ElemType data;
    	Node *next;
    };
    
    class Queue {
    public:
    	Node *front;
    	Node *rear;
    };
    
    void initQueue(Queue &queue)
    {
    	queue.front = (Node*)malloc(sizeof(Node));	// 起初都指向头结点 
    	queue.rear = queue.front;
    }
    
    // 入队列,只能从尾部入 
    void addNode(Queue &queue, int val)
    {
    	Node *q = (Node*)malloc(sizeof(Node));
    	q->data = val;
    	queue.rear->next = q;
    	queue.rear = q;
    }
    
    // 出队列,只能从头部出
    void delNode(Queue &queue)
    {
    	if (queue.front == queue.rear) {
    		cout << "queue is empty...
    ";
    		return;
    	}
    	Node *p = queue.front->next;
    	cout << "此时的队首元素是:" << p->data << endl; 
    	if (p == queue.rear) {		// 只有一个元素时 
    		queue.rear = queue.front;
    		free(p);
    	}
    	else {						 
    		queue.front = p->next;
    		free(p);
    	}
    } 
    
    
    int main()
    {
    	 Queue queue;
    	 initQueue(queue);
    	 addNode(queue, 1);
    	 addNode(queue, 2);
    	 addNode(queue, 3);
    	 delNode(queue);
    }
    

      

  • 相关阅读:
    自动生成四则运算题目
    学习进度总结随笔
    作业1
    软件工程项目总结
    结对编程项目---四则运算
    作业三
    自动生成小学四则运算题目的程序
    学习进度总结
    大三下自我简介
    寒假社会实*报告
  • 原文地址:https://www.cnblogs.com/xzxl/p/8643533.html
Copyright © 2011-2022 走看看