c语言实现队列
2011-06-30 09:37
381 查看
1队列
元素一个一个进入队列中,最先进入的最先出来,如同排队买火车票,先进的先出
a.头文件 queuelisth.h
C/C++ code
b. 具体实现 queuelist.c
C/C++ code
c.测试代码 queuelisttest.c
C/C++ code
编译输出:
gcc -o2 -o queuelisttest queuelist.c queuelisttest.c
./queuelisttest
frist : wangbo
in queue raodie
in queue niba
in queue bobo
in queue pengdui
queue: wangbo
queue: raodie
queue: niba
queue: bobo
queue: pengdui
元素一个一个进入队列中,最先进入的最先出来,如同排队买火车票,先进的先出
a.头文件 queuelisth.h
C/C++ code
typedef struct NODE { struct NODE *link; char *name; }Node; /** * 创建新节点 */ Node* create_node(); /** * 打印节点所带数据 */ void printf_node(Node *head); /** * 进入队列 */ void inqueue(char *name); /** * 出队列 */ void outqueue(); /** * 队列是否为空 */ int is_empty();
b. 具体实现 queuelist.c
C/C++ code
/** * author:srgzyq * email:srgzyq@gmail.com */ #include "queuelisth.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #define NAME_LEN 10 static Node *head; Node* create_node() { Node *new = (Node *)malloc(sizeof(Node)); if(new == NULL) return new; char *name = (char *)calloc(NAME_LEN,sizeof(char)); if(!name) { free((Node *)new); return NULL; } new->name = name; return new; } void printf_node(Node *node) { printf("queue: %s\n",node->name); } void inqueue(char *name) { Node *new = create_node(); new->name = name; /** * 队列为空 当前节点为头节点 */ if(head == NULL) { head = new; printf("frist : %s\n",head->name); return; } Node *frist = head; while(head->link != NULL) head = head->link; /** * 放入到队尾 */ head->link = new; head = frist; printf("in queue %s\n",name); } void outqueue() { Node *curNode = head; printf_node(curNode); head = head->link; free(curNode); } int is_empty() { return head == NULL; }
c.测试代码 queuelisttest.c
C/C++ code
#include <stdio.h> #include <stdlib.h> #include <string.h> #define ARR_LEN 5 char data_arr[][10] = {"wangbo","raodie","niba","bobo","pengdui"}; int main() { int index; for(index = 0;index < ARR_LEN; index++) inqueue(data_arr[index]); while(!is_empty()) outqueue(); return EXIT_SUCCESS; }
编译输出:
gcc -o2 -o queuelisttest queuelist.c queuelisttest.c
./queuelisttest
frist : wangbo
in queue raodie
in queue niba
in queue bobo
in queue pengdui
queue: wangbo
queue: raodie
queue: niba
queue: bobo
queue: pengdui
相关文章推荐
- C语言实现链队列代码
- 数据结构:循环队列(C语言实现)
- (C语言)队列的链式实现(数据结构十一)
- 数据结构 c语言实现链式循环队列(输入数字入队 输入字母出队)
- 寒假算法第一编——C语言实现队列
- C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列
- 队列C语言实现
- 循环队列的综合操作(出入队、获取队长度)C语言实现
- c语言实现队列结构操作的宏定义
- 链表实现队列 c语言
- c语言数组方式实现静态循环队列
- 循环队列及C语言实现<二>
- C语言实现链队列代码
- C语言实现,队列可伸缩
- 环形队列 - c语言实现
- 队列的数组实现(C语言描述)
- C语言实现队列
- 数据结构:循环队列(C语言实现)
- 数据结构:循环队列(C语言实现)
- 算法与数据结构【四】——C语言实现循环队列