#include <stdio.h>
typedef struct queue {
int ele;
struct queue* next;
}queue;
queue* CreatQueue() {
queue* p = (queue*)malloc(sizeof(queue));
if (p == NULL) {
printf("内存不足\n");
return NULL;
}
p->next = NULL;
return p;
}
void MakeEmpty(queue* p) {
queue* tmp = p;
if (tmp->next != NULL) {
MakeEmpty(tmp->next);
free(tmp);
}
else {
free(tmp);
}
}
int IsEmpty(queue* p) {
if (p->next == NULL) {
return 1;
}
return 0;
}
void enqueue(queue* p, int x) {
queue* tmp = p;
queue* mem = (queue*)malloc(sizeof(queue));
if (p == NULL) {
printf("内存不足\n");
return NULL;
}
mem->ele = x;
mem->next = tmp->next;
tmp->next = mem;
}
void dequeue(queue* p) {
queue* tmp = p;
if (p->next == NULL) {
printf("队列为空\n");
return;
}
while (tmp->next->next != NULL) {
tmp = tmp->next;
}
queue* tmpp = tmp->next;
tmp->next = NULL;
free(tmpp);
}
queue* Front(queue* p) {
queue* tmp = p;
if (p->next == NULL) {
printf("队列为空\n");
return;
}
while (tmp->next != NULL) {
tmp = tmp->next;
}
return tmp;
}
queue* FrontAndDe(queue* p) {
queue* tmp = p;
if (p->next == NULL) {
printf("队列为空\n");
return;
}
while (tmp->next->next != NULL) {
tmp = tmp->next;
}
queue* tmpp = tmp->next;
int b = tmpp->ele;
tmp->next = NULL;
free(tmpp);
return b;
}
void Print(queue* p) {
queue* tmp = p->next;
while (tmp != NULL) {
printf("%d ", tmp->ele);
tmp = tmp->next;
}
printf("\n-------------------\n");
}
int main() {
queue* pq = CreatQueue();
if (IsEmpty(pq)) {
printf("空队列\n");
printf("----------------------\n");
}
//入队
enqueue(pq, 1);
enqueue(pq, 2);
enqueue(pq, 3);
enqueue(pq, 4);
enqueue(pq, 5);
enqueue(pq, 6);
Print(pq);
//出队
dequeue(pq, 1);
dequeue(pq, 2);
dequeue(pq, 3);
enqueue(pq, 9);
Print(pq);
//dequeue(pq, 4);
//dequeue(pq, 5);
//dequeue(pq, 6);
//返回队头元素
queue* first = Front(pq);
printf("%d\n------------------\n", first->ele);
//返回队头元素并出队
int b = FrontAndDe(pq);
printf("%d\n-------------------\n", b);
first = Front(pq);
printf("%d\n------------------\n", first->ele);
MakeEmpty(pq);
return 0;
}
09-10
1万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-19
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交