数据结构:链表队列
来源:互联网 发布:面向对象编程的优势 编辑:程序博客网 时间:2024/05/26 02:18
这是今天最后一个数据结构了,这几天学下来感觉这个还是挺难的。
数据结构是各种语言的核心,练的的内在,而内功是最不能速成的,以后一定要不断琢磨。
头文件
#ifndef __LINKQUEUE_H__#define __LINKQUEUE_H__#define FALSE 0#define TRUE 1typedef int QUEUEDATA;typedef struct _node{QUEUEDATA data;struct _node *next;}NODE;typedef struct _queue{struct _node *front;struct _node *rear;}QUEUE;//创建链表队列QUEUE * Crate_queue();//清空队列int QueueEmpty(QUEUE *q);//进队int PushQueue(QUEUE *q,QUEUEDATA x);//出队(出队是从front开始的)int PopQueue(QUEUE *q,QUEUEDATA *x);//获取队列头int GetQueue(QUEUE *q,QUEUEDATA *x);//删除队列int DelQueue(QUEUE *q);#endif实现函数
#include<stdio.h>#include<stdlib.h>#include"LinkQueue.h"#include"error.h"//创建链表队列QUEUE * Crate_queue(){QUEUE *q = (QUEUE *)malloc(sizeof(QUEUE *)/sizeof(char));if (q == NULL){errno == MALLOC_ERROR;return NULL;}return q;}//清空队列int QueueEmpty(QUEUE *q){if (q == NULL){errno == ERROR;return FALSE;}q->front = NULL;q->rear= NULL;return TRUE;}//进队(链表的队列是从rear开始的)int PushQueue(QUEUE *q,QUEUEDATA x){if (q == NULL){errno == ERROR;return FALSE;}NODE * node = (NODE *)malloc(sizeof(NODE *)/sizeof(char));if (node == NULL){errno == ERROR;return FALSE;}node->data = x;node->next = NULL;//判断是否空栈if ( q->front == NULL){q->front = node;q->rear = node;}else {q->rear->next = node;q->rear = node;}return TRUE;}//出队(出队是从front开始的)int PopQueue(QUEUE *q,QUEUEDATA *x){if (q == NULL){errno == ERROR;return FALSE;}//判断是否空栈if ( q->front == NULL){errno = QUEUE_EMPTY;return FALSE;}if (q->front->next == NULL){*x = q->rear->data;free(q->front);q->front = NULL;q->rear = NULL;}else {*x = q->front->data;NODE * p = q->front->next;free(q->front);q->front = p;}return TRUE;}//获取队列头int GetQueue(QUEUE *q,QUEUEDATA *x){if (q == NULL){errno == ERROR;return FALSE;}//判断是否空栈if ( q->front == NULL){errno = QUEUE_EMPTY;return FALSE;}*x = q->front->data;return TRUE;}//删除队列int DelQueue(QUEUE *q){if (q == NULL){errno == ERROR;return FALSE;}int x;while(q->front){PopQueue(q,&x);}free(q);return TRUE;}
阅读全文
1 0
- 数据结构链表队列
- 数据结构-链表队列
- 数据结构----链表队列
- 数据结构:链表队列
- 数据结构:链表和队列
- 数据结构-链表队列实现
- 数据结构-队列-链表实现
- 数据结构---队列链表c实现
- 数据结构---队列的链表实现
- 【数据结构】队列-链表的实现
- 基础数据结构--队列链表实现
- 数据结构之队列的链表实现
- 数据结构之链表队列基本操作
- 数据结构-栈&队列&单向链表
- 使用链表结构构建队列数据结构
- 【数据结构】队列queue、普通链表list
- 双向链表实现数据结构中的队列
- 【数据结构】队列的链表实现
- Linux 学习-" "(双引号)与 ' '(单引号)的区别
- Sorting Information with Comparable -Swift中实例的排序问题
- Docker源码分析(四)之Docker Server
- Log4cpp 库安装及使用
- JS的面向对象-工厂方式-原型-继承
- 数据结构:链表队列
- Another a+b FZU
- 基于S3C2440的busybox的移植---解决FL2440的shell指令不能自动补全
- div模拟textarea高度随文本变化
- 一个手风琴效果的jquery动画
- 值得学习的C/C++语言开源项目
- Ubuntu 下 NFS环境的搭建
- scala 随笔(4) implicit 隐式转换 和冲突解决
- AJax请求数据用Jquary向select追加<option>