ADT栈
---------------
#include<stdio.h> #include<stdlib.h> //Stack CreatStack(MAX_STACK_SIZE) #define MAX_STACK_SIZE 10 typedef struct { int key; } element; element stack[MAX_STACK_SIZE]; int top = -1; void Add(int &top,int item) { if(top<MAX_STACK_SIZE-1) { stack[top].key = item; printf("%d\n",stack[top].key); top++; } else { printf("The stack is full.\n"); } } element Del(int &top) { if(top>=0) { top--; printf("top=%d\n",top); return stack[top]; } else { printf("The stack is empty.\n"); } } int main() { int i=0; Add(top,212); Del(top); return 0; }---------------------
Queue队列
---------------
#include<stdio.h> //Queue CreateQueue(max_queue_size) #define MAX_QUEUE_SIZE 10 typedef struct { int key; } element; element queue[MAX_QUEUE_SIZE]; int rear =-1; int front = -1; void addq(int &rear,element item) { if(rear >= MAX_QUEUE_SIZE) { printf("The queue is full.\n"); } else { rear++; queue[rear].key=item.key; printf("%d\n",queue[rear]); } } element deleteq(int &rear,int &front) { if(rear==-1) { printf("The queue is empty.\n"); } else { front++; return queue[front]; } } void main() { element item; item.key = 212; addq(rear,item); deleteq(rear,front); }-------------
循环队列
-----
#include<stdio.h> ////Queue CreateQueue(max_queue_size) #define MAX_QUEUE_SIZE 10 typedef struct { int key; } element; element queue[MAX_QUEUE_SIZE]; int rear =0; int front = 0; void addq(int &rear,int &front,element item) { if((rear-front==-1)||(rear-front==MAX_QUEUE_SIZE-1)) { printf("The queueCycle is full.\n"); } else { rear=(rear+1)%MAX_QUEUE_SIZE; queue[rear].key=item.key; printf("%d\n",int &front) { if(rear==front) { printf("The queue is empty.\n"); } else { front=(front+1)%MAX_QUEUE_SIZE; return queue[front]; } } void main() { element item; item.key = 212; while(1) { if(!((rear-front==-1)||(rear-front==MAX_QUEUE_SIZE-1))) addq(rear,front,item); else { printf("Full.\n"); break; } } while(1) { if(!(rear==front)) deleteq(rear,front); else { printf("Empty.\n"); break; } } }
----
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。