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);
    }
    

      

  • 相关阅读:
    函数
    向discuz里填充数据
    CI 基础
    FlashBuilder设置显示字符集
    win2003 Email邮件服务器搭配
    CI 模块化显示[仿照shopex功能]
    DW的鸟语
    CI 视图里加视图
    silverlight模拟单击事件
    自定义XML配置文件的操作类(转)
  • 原文地址:https://www.cnblogs.com/xzxl/p/8643533.html
Copyright © 2011-2022 走看看