LinkQueue by c++

 1 #pragma once
 2 
 3 typedef int Type;
 4 
 5 template <class Type> struct LQNode {
 6     Type data;
 7     LQNode<Type> *next;
 8 };
 9 
10 template <class Type> class LQueue {
11 private:
12     LQNode<Type> *front;
13     LQNode<Type> *rear;
14 
15 public:
16     bool IsEmpty();
17     bool EnLQueue(Type d);
18     bool DeLQueue(Type *d);
19 };
 1 #include <stdio.h>
 2 #include "LinkQueue.h"
 3 
 4 template <class Type> bool LQueue<Type> :: IsEmpty()
 5 {
 6     return NULL == front;
 7 }
 8 
 9 template <class Type> bool LQueue<Type> :: EnLQueue(Type d)
10 {
11     LQNode<Type> *node = new LQNode<Type>;
12     if (NULL == node)
13     return false;
14 
15     node->data = d;
16 
17     if (front == NULL)
18     front = node;
19     else
20     rear->next = node;
21 
22     rear = node;
23 
24     return true;
25 }
26 
27 template <class Type> bool LQueue<Type> :: DeLQueue(Type *d)
28 {
29     LQNode<Type> *node;
30 
31     if (IsEmpty())
32     return false;
33 
34     node = front;
35     front = front->next;
36     *d = node->data;
37 
38     delete node;
39 
40     return true;
41 }
 1 #include <iostream>
 2 #include "LinkQueue.h"
 3 #include "LinkQueue.cpp"
 4 
 5 using namespace std;
 6 
 7 int main(int argc, char **argv)
 8 {
 9     int i = 0;
10     Type d;
11     Type data[] = {1, 2, 3, 4,5, 6, 7, 8, 9, 0};
12     LQueue<Type> *q = new LQueue<Type>;
13 
14     while (i < 10)
15     q->EnLQueue(data[i++]);
16 
17     while (q->DeLQueue(&d))
18     cout << d << " ";
19 
20     cout << endl;
21 
22     return 0;
23 }

posted on 2012-09-02 18:19  robin.he  阅读(278)  评论(0)    收藏  举报

导航