您的位置:首页 > 编程语言 > C语言/C++

队列的入队,出队,测长度,打印c++代码

2018-02-03 15:22 309 查看
typedef struct st
{
int data;
struct st *next;
}node;

typedef struct linkQueue
{
node *first;//队首指针
node *rear;//队尾指针
}queue;

queue *insert(queue *Queue,int x)
{
node *s;//创建队列元素s
s=(node*)malloc(sizeof(node));
s->data=x;
s->next=NULL;

if(Queue)//队列为空
{
Queue->first=s;
Queue->rear=s;
}
else//队尾入队
{
Queue->rear->next=s;//队尾指针指向s
Queue->rear=s//队尾元素变为s
}
return Queue;
}

//出队
queue *del(queue *Queue)
{
int x;
node *q;
if(Queue->first==NULL)
{
cout<<"此队列为空"<<endl;
}
else
{
x=Queue->first->data;//取队首元素
p=Queue->first;
if(Queue->first==Queue->rear)//队列只有一个元素时
{
Queue->first=NULL;
Queue->rear=NULL;
}
else
{
Queue->first=Queue->first->next;
free(p);
}
}
return Queue;
}

//求队列长度
int length(node *Queue)
{
int n=0;
node *p;
p=Queue;
while(p!=NULL)
{
p=p->next;
n++;
}
return n;
}

//队列打印
void print(queue *Queue)
{
node *p;
p=Queue;
while(p!=NULL)
{
cout<<p->data<<endl;
p=p->next;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐