C++ 链队列的实现
来源:互联网 发布:linux移植步骤 编辑:程序博客网 时间:2024/06/06 20:00
C++ 链队列的实现!定义qnode时候,模板和typedef不能同时使用
//IQueue.h#pragma once#include <iostream>using namespace std;template<typename T>struct qnode //typedef和模板不能一起用{T data;struct qnode *next;} ;template<typename T>class IQueue{public:IQueue(void);~IQueue(void);public:bool isEmpty(); //return true id the queue is emptyT front(); //return data of the first node T get(int i);//return data of num i nodevoid push(const T &x); //add x to the tail of queueT pop(); //return and delete the first node in the queuebool clear(); //delete all nodes in queueprivate:qnode<T> *head;qnode<T> *tail;};template<typename T>IQueue<T>::IQueue(){qnode<T> *tmp = new qnode<T>;tmp->data = NULL;tmp->next = NULL;head = tmp;tail = tmp;}template<typename T>IQueue<T>::~IQueue(){delete head;delete tail;}template<typename T>bool IQueue<T>::isEmpty(){return head==tail;}template<typename T>T IQueue<T>::front(){if(isEmpty())return NULL;return head->next->data;}template<typename T>T IQueue<T>::get(int i){int num = 0;qnode<T> *p;p = head;while(p->next!=NULL&&num!=i){p=p->next;num++;}if(p->next==NULL&&num!=i)return NULL;if(num!=i)return NULL;return p->data;}template<typename T>void IQueue<T>::push(const T &x){qnode<T> *tmp = new qnode<T>;tmp->data = key;tmp->next = NULL;tail->next = tmp;tail = tmp;}template<typename T>T IQueue<T>::pop(){if(isEmpty())return NULL;qnode<T> *p = head;head = head->next;delete p;}template<typename T>bool IQueue<T>::clear(){if(isEmpty())return true;qnode<T> *p;p = head;while(p->next!=NULL){head->next = p->next;delete p;p = head;}tail = head;return true;}
- 【C++】队列的实现
- 链队列的实现 C语言
- 链队列的C语言实现
- 链队列的C语言实现
- 链队列的c语言实现
- c语言:链队列的实现
- Linux C下链队列的实现
- 链队列的C/C++实现
- 链队列的c语言实现
- 队列的C语言实现
- C语言队列的实现
- c语言队列的实现
- C链式队列的实现
- 队列的c语言实现
- c 实现的 循环队列
- 【C基础】队列的实现
- 队列的C语言实现
- 队列的C语言实现
- 常用算法
- Android系统的开机画面显示过程分析
- object-c翻译成c++(cocos2d-x)
- spring+ibatis+Atomikos实现JTA事务
- 飞思卡尔(FreeScale)单片机学习资料链接汇总 [
- C++ 链队列的实现
- Ext工作笔记
- android 电容屏(一):电容屏基本原理篇
- Ubuntu使用Windows下的conio.h
- Reverse Linked List II
- hdu1715 大菲波数
- asp.net 中使用easyui的form控件
- \xef\xbb\xbf
- 如何根据DPI来动态调整窗口或控件大小?