循环队列(链表实现).docVIP

  • 6
  • 0
  • 约1.69千字
  • 约 4页
  • 2017-03-08 发布于重庆
  • 举报
循环队列(链表实现)

/*该程序在vs2010旗舰版下 成功编译运行正常*/ /*循环队列 链表实现 , 自行建立头文件 头文件实现 main引用 三个文件*/ //头文件 #ifndef _CIRCLE_QUEUE_H_ #define _CIRCLE_QUEUE_H_ template struct Node T Data; Node *Next; ; template class Circle_Queue public: Circle_Queue ; void Push_Queue T a ; T POP_Queue ; void Print_All ; ~Circle_Queue ; private: Node *End; ; #endif //头文件实现 #include #includecircle_queue.h template Circle_Queue ::Circle_Queue End new Node ; End- Next End; template void Circle_Queue ::Push_Queue T a //入队操作 Node *p; p new Node ; p- Data a; p- Next End- Next; End- Next p; End p; template T Circle_Queue ::POP_Queue if End End- Next //判断队列是否为空 throw QUEUE IS NULL! ; Node *p,*Head; T temp; Head End- Next; p Head- Next; if p End //如果已经到达队尾,则对该队列进行置空队,并返回最后一个值 temp End- Data; End- Next End; delete Head; else temp p- Data; Head- Next p- Next; delete p; return temp; template void Circle_Queue ::Print_All //显示所有队列元素 if End End- Next throw QUEUE IS NULL! ; Node *Head; Head End- Next- Next; //第一个 节点不是有效节点 while Head ! End- Next cout Head- Data ; Head Head- Next; template Circle_Queue ::~Circle_Queue if End ! End- Next Node *p1,*p2; p1 End- Next; p2 p1; while p1 ! End p1 p1- Next; delete p2; p2 p1; delete End; //main引用 #include #includecircle_queue.cpp using namespace std; int main int m,n,b,d 0; try Circle_Queue c1; c1.Push_Queue 1 ; c1.Push_Queue 2 ; c1.Push_Queue 3 ; c1.Print_All ; m c1.POP_Queue ; n c1.POP_Queue ; b c1.POP_Queue ; d c1.POP_Queue ; catch const char *str cout str endl; cout m n b d endl; system pause ; return 0;

文档评论(0)

1亿VIP精品文档

相关文档