队列 入队,插入,出队,是否队空,队元元素,清空,打印
2017-11-22 18:22
351 查看
#pragma once #include <windows.h> typedef struct KEEP // { int index; char* name; KEEP* next; }KEEP; typedef struct QUEUE // { int size; KEEP* front; KEEP* back; }QUEUE; /////////////////////上述为头文件//////////////////////////// bool push_back(QUEUE* queue, KEEP keep) //入队 { KEEP* one = (KEEP*)malloc(sizeof(KEEP)); one->index = keep.index; (char*)(one->name) = (char*)malloc(8 * sizeof(char)); one->name = keep.name; KEEP *q = queue->back; if (queue->front== NULL) { queue->front = one; // queue->back = one; queue->size++; return true; } else { q->next = one; queue->back = one; one->next = NULL; queue->size++; return true; } } bool insert(QUEUE* queue, int index,char* name)//插入 { KEEP keep = {0}; keep.index = index; (char*)(keep.name) = (char*)malloc(8 * sizeof(char)); strcpy(keep.name, name); push_back(queue, keep); return true; } bool pop_front(QUEUE*queue)//出队 { KEEP* p = queue->front; queue->front = p->next; free(p); return true; } bool empty(QUEUE queue)//是否队空 { KEEP *p = queue.front; if (p == NULL) { return 0; } else { return 1; } } int size(QUEUE queue) //队员元素 { return printf("%d", queue.size); } int clear(QUEUE* queue)//清空 { KEEP *p = queue->front; KEEP *q = queue->front; for (p; p!=NULL;) { p=p->next; free(q); q = p; queue->size--; } queue->front = NULL; queue->back = NULL; return 0; } void show(QUEUE queue) //打印 { KEEP *p= queue.front; for (p = queue.front; p!=NULL; p = p->next) { printf("%s %d\n", p->name, p->index); } } void main() { QUEUE queue = { 0 }; //定义一个QUEUE结构体类型的变量queue,方便我们传数据 insert(&queue, 12, "王五");//插入数据,因为插入是QUEUE* 类型,因此需要加上取值符& insert(&queue, 14, "张三"); insert(&queue, 15, "李二"); insert(&queue, 16, "liu二"); show(queue); putchar('\n'); pop_front(&queue); pop_front(&queue); pop_front(&queue); show(queue); printf("%d\n", empty(queue)); size(queue); putchar('\n'); clear(&queue); size(queue); printf("%d\n", empty(queue)); getchar(); }
相关文章推荐
- 优先队列priority_queue容器的使用方法:出队,入队,删除队首元素,判断是否为空
- 队列用链表实现(建立,插入新元素,删除元素,读取元素,全部删除,全部读出,判断是否为空,清空)
- queue队列容器入队,出队,读取队首元素,队尾元素,判断是否为空
- 队列用链表实现(建立,插入新元素,删除元素,读取元素,全部删除,全部读出,判断是否为空,清空)
- 编程实现队列的入队、出队、测长、打印
- 实现列表类,清空、添加、删除、查找、插入,判断元素是否存在
- 顺序队列的创建、初始化、判断空、入队、出队、读取队头元素、置空、求队长操作
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 队列的入队,出队,测长度,打印c++代码
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 队列的入队,出队,测长度,打印c++代码
- 队列的入队,出队,测长,打印操作 .
- 链队列的初始化、出队、入队、取队头元素、判空
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 队列的入队,出队,测长度,打印c++代码
- 编程实现队列的入队、出队、测长、打印
- 循环队列和链式队列的结构及其基本操作(入队、出队、取队头、查看对内元素)
- 队列的入队,出队,测长度,打印c++代码
- 链队列的简单操作(入队,出队,输出队元素等)
- c之队列相关操作------初始化,入队,出队,队列清空,销毁,遍历