数据结构--用C实现链式队列
2017-03-12 15:27
411 查看
#include <stdio.h> #include <stdlib.h> typedef struct node { int data; struct node *next; } Node; typedef struct queue { struct node *top; struct node *tail; } Queue; int gettop(struct queue *p) { return p->top-> data; } struct queue * push(struct queue *p,int x ) { struct node *q; q = (struct node *)malloc(sizeof(struct node)); q->data = x; q->next = NULL; if(p->top == NULL) p->top = q, p->tail = q; else { p->tail->next = q; p->tail =q; } return p; } struct queue * pop(struct queue *p) { struct node *q; if(!p->top) return NULL; q = (struct node *)malloc(sizeof(struct node)); q = p->top; p->top = p->top->next; free(q); return p; } int stempty(struct queue *p) { return(p->top==NULL ? 0 : 1); } int main() //用于测试 { struct queue *p; int n; //栈的长度 p = (Queue *)malloc(sizeof(Queue)); p->top = NULL; p->tail = NULL; int a[6] = {1,2,3,4,5,6},t = 7;//测试数据 int i; for(i=0; i<6; i++) { p = push(p,a[i]); } p = push(p,t); p = pop(p); p = pop(p); p = pop(p); printf("%d\n",gettop(p));//打印top的数 while(p->top !=NULL) { printf("%d ",p->top->data);//打印队列 printf("%d\n",stempty(p));//队列是否为空 p->top=p->top->next; } printf("%d\n",stempty(p)); return 0; }
相关文章推荐
- 数据结构实现链式队列(C语言)
- C语言 队列的链式结构的实现与表示 数据结构 队列的实现与表示
- 数据结构学习---队列的链式储存实现
- 数据结构之链式队列go言语实现
- 数据结构-->队列的链式实现 ADT
- 数据结构 - 队列简介 及 1个简单的c语言链式队列代码实现
- 数据结构队列C++实现 链式和循环
- 数据结构学习---队列的链式储存实现
- 数据结构---队列的链式实现
- 数据结构和算法--队列的链式实现
- [数据结构]链式队列的实现。
- 数据结构学习----链式队列(Java实现)
- [数据结构]程杰队列的链式存储结构及实现代码
- 数据结构Java实现07----队列:顺序队列&顺序循环队列、链式队列、顺序优先队列
- 数据结构的C实现_链式队列
- (C语言)队列的链式实现(数据结构十一)
- 重温数据结构:队列的链式实现、顺序实现及循环队列
- 数据结构-链式队列的实现
- 数据结构之队列的链式表示和实现
- 队列的链式表示和实现(数据结构)