C/C++代码(1):队列
来源:互联网 发布:腾讯云数据库招聘 编辑:程序博客网 时间:2024/05/22 10:58
#include<maloc.h>//定义队列 typedef struct node{int data;struct node *next;}Queue;typedef struct pointer{Queue *front;//队首 Queue *rear;//队尾 }QPointer;//初始化队列 void QueueInit(QPointer *qp){Queue *que;que = (Queue *)malloc(sizeof(Queue));//队首和队尾指向同一个内存空间,指针域为NULL que->next = NULL;qp->front = que;qp->rear = que;}//判断队列是否为空 int IsEmpty(QPointer *qp){//队首和队尾指针是否相同 if(qp->front == qp->rear){return 1;}return 0;}//插入元素到队列 int QueuePush(QPointer *qp , int element){Queue *que;que = (Queue *)malloc(sizeof(Queue));if(que == NULL){return 0;}que->data = element;que->next = NULL;qp->rear->next = que;//节点插入队尾 qp->rear=que;//调整队尾指针 return 0;}//删除数据元素 int QueuePop(QPointer *qp , int *element){Queue *que;if(IsEmpty(qp)){return 0;}que = qp->front->next; *element = que->data;//出队元素 qp->front->next = que->next;//判断是不是只剩下最后一个元素 if(qp->rear == que){qp->rear = qp->front;}free(que);return 1;}int main(int argc, char *argv[]) {QPointer *qp;int x;qp = (QPointer *)malloc(sizeof(QPointer));QueueInit(qp);printf("input positive integers:\n");scanf("%d" , &x);while(x > 0){QueuePush(qp , x);scanf("%d",&x);}Queue *p = qp->front->next;if(p == NULL){return 0;}printf("queue element:\n");while(p){printf("%d" , p->data);p=p->next;}printf("\n");printf("delete:\n");while(QueuePop(qp , &x)){printf("%d" , x);}printf("\n");p = qp->front;free(p);free(qp);return 0;}
0 0
- C/C++代码(1):队列
- 队列代码C实例
- 队列的c代码实现
- 循环队列(C/C++)
- 顺序队列(循环队列)和链队列的C代码实现
- 数据结构(C语言版)规范代码之队列
- 程序员代码面试指南-猫狗队列(c++)
- 数据结构---队列(C#)
- 队列(c实现)
- 队列(C语言)
- 循环队列(c)
- 队列(C语言版)
- 队列(C++)
- 栈、链、队列操作的 c代码
- c语言队列基本操作代码
- 数据结构伪C代码:栈和队列
- C语言实现链队列代码
- 数据结构 - 队列简介 及 1个简单的c语言链式队列代码实现
- C#从视频截图的方法
- UITabBar
- C++ 之 原子操作 Interlocked系列函数多线程(四)
- JAVA进行类型转换
- 【CSDN常见问题解答】使用JNA调用Windows动态库
- C/C++代码(1):队列
- C/C++ via Windows (1) - first thing first
- ios 之contentmode
- linux设备模型之i2c子系统
- office2003word解除安全模式启动
- 错误: 找不到与“EntityFramework 6.0.2-beta1”兼容的“EntityFramework.zh-Hans”版本。
- 百度推广——搜索营销新视角
- iOS学习笔记: 错误记录
- 邮箱pop和smtp协议的说明