队列相连(队列,链表)
2014-10-11 18:41
155 查看
#include<iostream>
using namespace std;
extern int k=1;
class Queue
{
public:
int maxSize;
int rear;
int front;
int *queue;
public:
Queue(const int size)
{
maxSize=size+1;
queue=new int[maxSize];
front=rear=0;
}
~Queue()
{
delete [] queue;
}
void Clear()
{
front=rear;
}
bool EnQueue(const int item)
{
if((rear+1)%maxSize==front)
{
cout<<"队列已满"<<endl;
return false;
}
queue[rear]=item;
rear=(rear+1)%maxSize;
return true;
}
int IsEmpty()
{
if(rear==front)
{
return 0;
}
return 1;
}
bool DeQueue(int &item)
{
if(rear==front)
{
cout<<"队列空"<<endl;
return false;
}
item=queue[front];
front=(front+1)%maxSize;
return true;
}
void print()
{
for(;front<=rear;front++)
{
cout<<queue[front]<<endl;
}
}
};
class Node
{
public:
int *data;
Node *pnext;
};
class List
{
public:
Node *head;
Node *tail;
public:
List()
{}
void insert(int *n)
{
Node *ptemp;
ptemp=new Node;
ptemp->data=n;
if(k)
{
head=tail=ptemp;
k--;
}
tail->pnext=ptemp;
tail=tail->pnext;
}
void print()
{
while(head!=tail)
{
for(int i=0;i<10;i++)
{
if(*(head->data+i)>=0&&*(head->data+i)<=9)
cout<<*(head->data+i);
}
head=head->pnext;
}
for(int i=0;i<10;i++)
{
if(*(tail->data+i)>=0&&*(tail->data+i)<=9)
cout<<*(tail->data+i);
}
}
};
int main()
{
List st;
cout<<"输入你想输入的数的个数"<<endl;
int n;
int sum;
cin>>n;
Queue qe1(n);
Queue qe2(n);
Queue qe3(n);
Queue qe4(n);
Queue qe5(n);
Queue qe6(n);
Queue qe7(n);
Queue qe8(n);
Queue qe9(n);
Queue qe0(n);
for(int i=0;i<n;i++)
{
cout<<"输入你想输入的数"<<endl;
cin>>sum;
switch(sum)
{
case 1:
qe1.EnQueue(sum);
break;
case 2:
qe2.EnQueue(sum);
break;
case 3:
qe3.EnQueue(sum);
break;
case 4:
qe4.EnQueue(sum);
break;
case 5:
qe5.EnQueue(sum);
break;
case 6:
qe6.EnQueue(sum);
break;
case 7:
qe7.EnQueue(sum);
break;
case 8:
qe8.EnQueue(sum);
break;
case 9:
qe9.EnQueue(sum);
break;
case 10:
qe0.EnQueue(sum);
break;
default:
cout<<"请输入十以内的数"<<endl;
}
}
int *jud[10];
jud[0]=qe0.queue;
jud[1]=qe1.queue;
jud[2]=qe2.queue;
jud[3]=qe3.queue;
jud[4]=qe4.queue;
jud[5]=qe5.queue;
jud[6]=qe6.queue;
jud[7]=qe7.queue;
jud[8]=qe8.queue;
jud[9]=qe9.queue;
for(int i=0;i<10;i++)
{
if(*jud[i]>=0&&*jud[i]<=9)
{
st.insert(jud[i]);
}
}
st.print();
system("pause");
return 0;
}
using namespace std;
extern int k=1;
class Queue
{
public:
int maxSize;
int rear;
int front;
int *queue;
public:
Queue(const int size)
{
maxSize=size+1;
queue=new int[maxSize];
front=rear=0;
}
~Queue()
{
delete [] queue;
}
void Clear()
{
front=rear;
}
bool EnQueue(const int item)
{
if((rear+1)%maxSize==front)
{
cout<<"队列已满"<<endl;
return false;
}
queue[rear]=item;
rear=(rear+1)%maxSize;
return true;
}
int IsEmpty()
{
if(rear==front)
{
return 0;
}
return 1;
}
bool DeQueue(int &item)
{
if(rear==front)
{
cout<<"队列空"<<endl;
return false;
}
item=queue[front];
front=(front+1)%maxSize;
return true;
}
void print()
{
for(;front<=rear;front++)
{
cout<<queue[front]<<endl;
}
}
};
class Node
{
public:
int *data;
Node *pnext;
};
class List
{
public:
Node *head;
Node *tail;
public:
List()
{}
void insert(int *n)
{
Node *ptemp;
ptemp=new Node;
ptemp->data=n;
if(k)
{
head=tail=ptemp;
k--;
}
tail->pnext=ptemp;
tail=tail->pnext;
}
void print()
{
while(head!=tail)
{
for(int i=0;i<10;i++)
{
if(*(head->data+i)>=0&&*(head->data+i)<=9)
cout<<*(head->data+i);
}
head=head->pnext;
}
for(int i=0;i<10;i++)
{
if(*(tail->data+i)>=0&&*(tail->data+i)<=9)
cout<<*(tail->data+i);
}
}
};
int main()
{
List st;
cout<<"输入你想输入的数的个数"<<endl;
int n;
int sum;
cin>>n;
Queue qe1(n);
Queue qe2(n);
Queue qe3(n);
Queue qe4(n);
Queue qe5(n);
Queue qe6(n);
Queue qe7(n);
Queue qe8(n);
Queue qe9(n);
Queue qe0(n);
for(int i=0;i<n;i++)
{
cout<<"输入你想输入的数"<<endl;
cin>>sum;
switch(sum)
{
case 1:
qe1.EnQueue(sum);
break;
case 2:
qe2.EnQueue(sum);
break;
case 3:
qe3.EnQueue(sum);
break;
case 4:
qe4.EnQueue(sum);
break;
case 5:
qe5.EnQueue(sum);
break;
case 6:
qe6.EnQueue(sum);
break;
case 7:
qe7.EnQueue(sum);
break;
case 8:
qe8.EnQueue(sum);
break;
case 9:
qe9.EnQueue(sum);
break;
case 10:
qe0.EnQueue(sum);
break;
default:
cout<<"请输入十以内的数"<<endl;
}
}
int *jud[10];
jud[0]=qe0.queue;
jud[1]=qe1.queue;
jud[2]=qe2.queue;
jud[3]=qe3.queue;
jud[4]=qe4.queue;
jud[5]=qe5.queue;
jud[6]=qe6.queue;
jud[7]=qe7.queue;
jud[8]=qe8.queue;
jud[9]=qe9.queue;
for(int i=0;i<10;i++)
{
if(*jud[i]>=0&&*jud[i]<=9)
{
st.insert(jud[i]);
}
}
st.print();
system("pause");
return 0;
}
相关文章推荐
- 链表实现队列
- 数据存储的常用结构 堆栈、队列、数组、链表
- 用单链表自定义队列
- [C++]数据结构:链表描述的队列LinkedQueue类
- 浅谈链表 栈 队列 及链表的逆序输出应用
- 数据结构-链表,队列,栈
- Python数据结构之列表、栈、队列、链表、字典
- 线性数据结构(线性表、链表、栈、队列、散列表)
- 【学习笔记10】基本数据结构(栈 队列 链表 有根树)
- 队列的链表实现
- 双向链表实现队列与循环链表
- java数据结构链表,堆栈,队列等相关专题分析与扯谈-队列
- C/C++基本数据结构:顺序表/链表 队列
- 链表 链栈 链队列的建立
- 利用链表实现队列的Java代码
- 算法#07--背包、队列和栈(链表实现)
- 队列的实现(FIFO、链表)
- 基于链表、数组实现队列、循环队列
- 数据结构---链表、堆栈、队列详解
- 链表、队列、栈和字符串的相关应用(四)字符串的替换