ADT
来源:互联网 发布:数码宝贝网络侦探进化 编辑:程序博客网 时间:2024/06/10 02:01
//ADT LinkQueue#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define OVERFLOW -1typedef int QElemType;typedef int Status;typedef struct QNode { QElemType data; struct QNode *next;}QNode, *QueuePtr;typedef struct { QueuePtr front;//头指针 QueuePtr reer;//尾指针}LinkQueue;//构造一个空队列Status InitQueue(LinkQueue &Q) { Q.front = Q.reer = (QNode *)malloc(sizeof(QNode)); if(!Q.front) exit(OVERFLOW); Q.front->next = NULL; return OK;}//销毁队列QStatus DestroyQueue(LinkQueue &Q) { QueuePtr p = Q.front, postp; while(p) { postp = p->next; free(p); p = postp; } Q.front = Q.reer = NULL; return OK;}//清空队列Status ClearQueue(LinkQueue &Q) { Q.reer = Q.front; Q.front->next = NULL; return OK;}//插入元素Status EnQueue(LinkQueue&Q, QElemType e) { QueuePtr p = (QNode *)malloc(sizeof(QNode)); if(!p) exit(OVERFLOW); p->data = e; p->next = NULL; Q.reer->next = p; Q.reer = p; return OK; }//删除元素Status DeQueue(LinkQueue &Q,QElemType &e) { if(Q.front == Q.reer) return ERROR; QueuePtr p = Q.front->next; e = p->data; Q.front->next = p->next; if(Q.reer == p) { Q.reer = Q.front; } free(p); return OK;}//判断队列是否为空Status QueueEmpty(LinkQueue Q) { if(Q.front == Q.reer) return TRUE; return FALSE;}//求队列长度int QueueLength(LinkQueue Q) { int cnt = 0; QueuePtr p = Q.front->next; while(p) { cnt++; p = p->next; } return cnt;}//求队头元素的值Status GetHead(LinkQueue Q, QElemType &e) { if(Q.front == Q.reer) return ERROR; QueuePtr p = Q.front->next; e = p->data; free(p); return OK;}//遍历Status QueueTraverse(LinkQueue Q) { QueuePtr p = Q.front->next; while(p) { if(p == Q.front->next)cout << p->data; else cout << ' ' << p->data; p = p->next; } cout << endl;}
阅读全文
0 0
- ADT
- adt
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- 删除ADT,重新安装ADT
- 日志ADT
- ADT(链表)
- ADT 配置
- 数据结构实验之二叉树一:树的同构
- ofo张巳丁:如果见到胡玮炜 我会说幸会
- 中国计算机学会秘书长杜子德:这么多年,自然语言处理还没“过关”
- 谷歌Chrome居首,微软Edge增长缓慢:最新浏览器市场份额排名出炉
- 安卓使用Termux做渗透测试(演示sqlmap安装,并附上一个神器)
- ADT
- form表单 重置按钮
- 数据结构顺序表的定义(Java)
- Cglib动态代理
- 算法导论读后感-之堆,堆排序,堆排序的应用
- 路透:百度扎根硅谷 引领自动驾驶汽车研发
- 合唱团问题-懵逼-强行做-错-更懵逼-继续做-完成
- POJ
- Python selenium的js扩展实现