⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linqueuem.txt

📁 C++描述的数据结构内容,在C++builder的环境中运行,这是第二部分
💻 TXT
字号:
//链式队列的类定义linqueue.h
//最大队列长度
#define QueueSize 10
typedef int datatype;
//链队列的类型定义为一个结构类型:
typedef struct QueueNode{
  datatype  data;
  struct QueueNode *next;
}queuenode;
class linkqueue{
 private:
  queuenode  *front;//队列头指针.
  queuenode  *rear; //队列尾指针.
  int count;// 队列结点个数
 public:
//构造函数
 linkqueue()
 { front=rear=NULL;count=0; }
//析构函数
 ~linkqueue(){front=rear=NULL;}
// 判断队空
 int queueempty();
// 判断队满
 int queuefull();
// 入队(队列的插入)
 void enqueue(datatype);
// 出队(队列的删除)
 datatype dequeue();
// 取队列的头元素
 datatype queuefront();
//求队列的长度(即队列的元素个数)
 int QueueLength();
};
//链式队列的实现linqueue.cpp
#include "linqueue.h"
// 判断队空
int linkqueue::queueempty()
{return front==NULL&&rear==NULL;}
// 判断队满
int linkqueue::queuefull()
{return count==QueueSize;}
// 入队(队列的插入)
void linkqueue::enqueue(datatype x)
//在队列中插入一元素e为Q的新队尾元素
{queuenode *p;
 p=(queuenode *)malloc(sizeof(queuenode));
 p->data=x;
 p->next=NULL;
 if(!queueempty()){rear->next=p;rear=p;}
 else front=rear=p;
 count++;
}
// 出队(队列的删除)
datatype linkqueue::dequeue()
//若队列不空则删除队列头部元素并用e返回其值
{datatype  x;
 queuenode *p;
 if(queueempty())
   {cerr<<"队列已空\n";exit(1);}
 p=front;
 x=p->data;
 front=p->next;
 if(rear==p) rear=NULL;
 count--;
 delete p;
 return x;
}
// 取队列的头元素
datatype linkqueue::queuefront()
{if(queueempty())
   {cerr<<"队列空.\n";exit(1);}
 return front->data;
}
//求队列的长度(即队列的元素个数)
int linkqueue::QueueLength()
{return count;}
// 链式队列的测试linqueuem.cpp
#include<iostream.h>
#include<iomanip.h>
#include "linqueue.cpp"
void main()
{cout<<"linqueuem.cpp运行结果:\n";
 linkqueue MyQueue;
 int i,x,a[3];
 cout<<"生成链式队列MyQueue:\n";
 for(i=0;i<QueueSize;)
  {x=random(1133+i)%1000;
   if(100<=x&&x<=999)
    {MyQueue.enqueue(x);i++;}}
 cout<<"求链式队列MyQueue的长度:";
 cout<<MyQueue.QueueLength()<<endl;
 cout<<"输出链式队列MyQueue:\n";
 cout<<"同时求任一个三位数是否为回文数.\n";
 while(!MyQueue.queueempty())
  {x=MyQueue.dequeue();
   cout<<setw(4)<<x;
   a[0]=x%10;
   x=x/10;a[1]=x%10;
   x=x/10;a[2]=x;
   if(a[0]!=a[2]) cout<<"不是回文数!\n";
   if(a[0]==a[2]) cout<<"是回文数!\n";}
 cin.get();cin.get();}
linqueuem.cpp运行结果:
输入产生随机数的种子数m:1500
生成链式队列MyQueue:
求链式队列MyQueue的长度:10
输出链式队列MyQueue:
同时求任一个三位数是否为回文数.
 631不是回文数!
 132不是回文数!
 189不是回文数!
 376不是回文数!
 186不是回文数!
 840不是回文数!
 285不是回文数!
 966不是回文数!
 443不是回文数!
 169不是回文数!




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -