队列基本操作 (二)

2014-11-24 02:07:57 · 作者: · 浏览: 4
ta=e;
p->next=NULL;
q.rear->next=p; //为尾指针的next重新赋值 将元素插入表尾
q.rear=p; //重新定位尾指针
return OK;
}

//删除元素
status deQueue(LinkQueue &q)
{
if(q.front==q.rear) return ERROR; //此时队列为空
queuePtr p=q.front->next;
// e=p->data; //删除是dui首
q.front->next=p->next;
if(q.rear==p)
q.rear=q.front;
free(p);
printf("元素删除成功!\n");
return OK;
}

//获得队首元素
status getHead(LinkQueue &q)
{
queuePtr p=q.front->next;
printf("%d\n",p->data);
return OK;
}

//输出队列
status printQueue(LinkQueue q)
{
queuePtr p;
p=q.front->next;
while(p)
{
printf("%d ",p->data);
p=p->next;
}

return OK;
}

int main()
{
LinkQueue q;
int i,j,k,m;
initQueue(q);//进行队列的初始化:
printf("插入几个数据:\n");
scanf("%d",&i);
for(j=0;j { printf("请输入第%d个整数",j+1);
scanf("%d",&k);
enQueue(q,k);
}
do
{
printf("请根据提示进行相应操作:\n");
printf("删除元素选择输入1:\n");
printf("清空队列选择输入2:\n");
printf("输出队列选择输入3:\n");
printf("退出输入4:\n");
scanf("%d",&m);
switch(m)
{
case 1: deQueue(q); break;
case 2: destoryQueue(q); break;
case 3: printQueue(q);break;
default: printf("请重新输入:\n");break;
}
}while(m!=4);
return 0;
}

\