当前位置:   article > 正文

数据结构:队列的C语言实现_数据结构队列的c语言实现完整代码

数据结构队列的c语言实现完整代码

队列(Queue),是一种特殊的线性表,其元素的逻辑关系是线性关系,其特殊性体现于只能在一端做插入运算,另一端删除元素。队列表现先进先出(FIFO)的特点。
队列的基本运算如下:

  • createQueue():创建队列
  • isEmpty(Queue queue):判空
  • getFirstElem(Queue queue):得到队头元素
  • addElem(Queue& queue, QueueType m):元素入队
  • exitQueue(Queue& queue, QueueType& m):元素出队
  • destoryQueue(Q):销毁队列
#include <stdio.h>
#include <stdlib.h>

typedef int QueueType;

struct Queue{
    QueueType key;
    struct LinkQueue *next;
};

typedef struct Node{
    struct LinkQueue *head;//头指针
    struct LinkQueue *end;//尾指针
}Queue;

//创建队列
Queue createQueue(){
	Queue queue;
	queue.head=0;
	queue.end=0;
	return queue;
}

//判断队列是否为空
int isEmpty(Queue queue){
	return queue.head==queue.end?1:0;
}

//得到队头元素
QueueType getFirstElem(Queue queue){
	if(queue.head==0){
		return 0;
	}
	return queue.head->key;
}

//入队
int addElem(Queue& queue, QueueType m){
	sturct LinkQueue* node = (sturct LinkQueue*)malloc(sizeof(sturct LinkQueue));
	if(!node){
		printf("元素内存增加失败。\n");
		return -1;
	}
	node->key=m;
	node->next=0;
	if (queue.end == 0) {
        queue.end = node;
    } else {//修改队尾指针
        queue.end->next = node;
        queue.end = node;
    }
    if (queue.head == 0) {
        queue.head = node;
    }
    return 1;
}
//出队
int exitQueue(Queue& queue, QueueType& m) {
    if (isEmpty(queue) == 0) 
        return 0;
    struct LinkQueue* node = queue.head;
    queue.head = node->next;
    node->next = 0;
    m = node->key;
    free(node);
    if (queue.head == 0)
        queue.end = 0;
    return 1;
}
int main(int argc, char const *argv[])
{
	/* code */
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/657003
推荐阅读
相关标签
  

闽ICP备14008679号