// Filename : list_queue.c
// Author : LupingChen
// Data : 2015.05.30
// Content : create\destory\full\empty\push
#include <stadio.h>
#include <stdlib.h>
//定义节点数据类型
typedef struct Node {
int data;//节点数据
struct Node* next;//记录下一节点地址
} Node;
//定义队列数据类型
typedef struct {
Node* head;//头指针
} Queue;
//出队
int pop(Queue* pq);
//查看队首元素
int get_head(Queue* pq);
//查看队尾元素
int get_tail(Queue* pq);
//计算队列中所有的元素
int size(Queue* pq);
int main(void)
{
return 0;
}
//出队
int pop(Queue* pq)
{
if (empty(pq))
{
return -1;
}
//给头指针找个替身
Node* p = pq->head;
p->head = p->next;
//存储要释放的节点数据
int temp = p->data;
free(p);
p = NULL;
//返回释放节点数据
return temp;
}
//查看队首元素
int get_head(Queue* pq)
{
if (empty(pq))
{
return -1;//用-1代表错误
}
return pq->head->data;
}
//查看队尾元素
int get_tail(Queue* pq)
{
//队列为空
if (empty(pq))
{
return -1;
}
//队列不为空
//替身
Node* p = pq->head;
//循环移动指针,定位到尾节点
while (p->next != NULL)
{
p = p->next;
}
//返回尾节点数据
return p->data;
}
//计算队列中所有的元素个数
int size(Queue* pq)
{
int cnt = 0;
Node* p = pq->head;
while (p != NULL)
{
cnt++;
p = p->next;
}
return cnt;
}
队列的链式存储结构的实现2 —— 出队查看队首尾元素计算元素个数
最新推荐文章于 2022-09-06 11:00:21 发布