设为首页 加入收藏

TOP

关于链队列的代码分析
2018-05-23 09:17:52 】 浏览:117
Tags:关于 队列 代码 分析

关于链队列的代码分析

#include<iostream.h>

template<class T>

struct N//定义结构体类型的结点

{

         N*next;

         Tdata;

};

template<class T>

class Linkqueue

{N<T>*front,*rear;

public:

         Linkqueue();

         ~Linkqueue(){}

         boolempty();

         voidEnqueue(T x);

         TDequeue();

         voidGetqueue();

         voidprint();

};

template<class T>//构造函数

Linkqueue<T>::Linkqueue()

{

        

          N<T> *s=new N<T>;//申请一个结构体类型大小的动态空间,并将首地址赋给结构体类型的指针s

         s->next=NULL;

         front=rear=s;

}
template<class T>//判空

bool Linkqueue<T>::empty()

{

         if(rear==front)

                  returntrue;

         else

                  returnfalse;

}

template<class T>//入队

void Linkqueue<T>::Enqueue(T x)

{

         N<T>*s;

         s=newN<T>;

         s->data=x;

         s->next=NULL;

         rear->next=s;

         rear=s;

}

template<class T>

T Linkqueue<T>::Dequeue()//出队

{

         N<T>*p;

         if(empty())throw"underflow";

         p=front->next;

         Tx=p->data;

         front->next=p->next;

         if(p->next==NULL)

                  rear=front;

         deletep;

         returnx;

}

template<class T>

void Linkqueue<T>::Getqueue()//输出头元素

{       cout<<"队列的头元素是:";

         Tx=front->next->data;

         cout<<x<<endl;

}

template<class T>

void Linkqueue<T>::print()//遍历

{

         N<T>*p;

         Tx;

         p=front->next;

         cout<<"队列的所有元素是:";

         while(p!=NULL)

         {

                  x=p->data;

                  cout<<x<<"";

                  p=p->next;

         };

         cout<<endl;

}

        

int main()

{

         Linkqueue<char>Link;//定义对象

         Link.Enqueue('h');

         Link.Enqueue('e');

         Link.Enqueue('y');

         Link.print();

         Link.Getqueue();

         cout<<"删除元素:"<<Link.Dequeue()<<endl;

         Link.print();

         return0;

}

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇SQL嵌套查询与子查询实例解析 下一篇Oracle提示ORA-1652表空间已满的..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目