Queen模板实现
来源:互联网 发布:go并发编程实战 pdf 编辑:程序博客网 时间:2024/04/27 20:04
今天早上给大家带来一个Queen的实现.
#include<exception>#include<iostream>using namespace std;template <class T>class Queen{ public: struct node{ T data; node* next; node(const T data = T()):data(data),next(NULL){} }; Queen(int _max=0):max(_max),size(0),last(NULL) { head = new node(); } virtual ~Queen(); void queenPut(const T&); T queenGet(); bool queenEmpty(); bool queenFull(); void show(); void clear(); void setNode(const T&); int getSize()const { return size;} private: int size; int max; node* head; node* last;};template <class T>void Queen<T>::clear(){ node* p = head; while(p->next!=NULL) { node* temp; temp = p; p = p->next; --size; delete temp; }}template <class T>Queen<T>::~Queen(){ clear();}template <class T>void Queen<T>::setNode(const T& data){ node* no = new node(); if(no!=NULL){ no->data = data; no->next = last->next; last->next = no; last = last->next; ++size; }}template <class T>void Queen<T>::queenPut(const T& data){ if(queenFull()) { throw "Queen is full !!"; } node* no = new node(); if(last==NULL) { no->data = data; no->next = head->next; head->next = no; last = head->next; ++size; return ; } setNode(data);}template <class T>T Queen<T>::queenGet(){ if(queenEmpty()) { throw "Queen is empty !!"; } T data = head->next->data; node* p = head->next->next; delete head->next; head->next = p; --size; return data;}template <class T>void Queen<T>::show(){ node* p = head->next; cout<<"Queen< "; while(p!=NULL) { cout<<p->data<<' '; p = p->next; } cout<<" > "; cout<<endl;}template <class T>bool Queen<T>::queenEmpty(){ return (head->next)==NULL;}template <class T>bool Queen<T>::queenFull(){ return size==max;}
0 0
- Queen模板实现
- Queen
- N-Queen(java实现)
- dancing queen
- queen皇后
- N queen
- Queen Collisions
- UVA11538Chess Queen
- N-queen
- N-Queen
- N-Queen
- Eight Queen
- Queen的“波西米亚狂想曲”
- 8 Queen 求解 初探
- UVa 11538 - Chess Queen
- Queen's面试
- sicily 2014 Dairy Queen
- 2134 Queen Or Not
- 【攻略】淘宝前端智勇大闯关-第三季
- VIM配置文件
- Leetcode Problem 汇总一
- 突然想爱你
- 这些都是改进点
- Queen模板实现
- asp.net sql无限极分类实例程序
- openstack
- 分手后”“在一起”的第十二天
- 高斯混合模型学习笔记
- 基于IAP和Keil MDK的远程升级设计
- 基友和闺蜜的终极差别
- 扯淡ing
- 网站实用的小功能Window对象