本文共 1417 字,大约阅读时间需要 4 分钟。
总体来说实现起来和栈是差不多的,都是操作受限的顺序表。进行一点特殊处理就行了。
#include#include #include #define MAX 1001using namespace std;typedef struct { int a[MAX]; int front,rear;}SQueue;void Init(SQueue *s){ s->front=0; s->rear=0;}bool Insert(SQueue *s,int e){ if(s->front==s->rear+1) return false; s->a[s->rear]=e; s->rear++; s->rear%=MAX; return true;}bool Delete(SQueue *s,int *e){ if(s->rear==s->front) return false; *e=s->a[s->front]; s->front++; s->front%=MAX; //point return true;}int SQueuelenth(SQueue s){ int len=0; if(s.front>=s.rear) len=s.front-s.rear; else len=s.rear-s.front; return len;}int main(){ srand(time(NULL)); SQueue s; Init(&s); int n=rand()%20; cout<<"n="< <
#include#include #include using namespace std;typedef struct Node{ int e; Node *next;}Queue;Queue *Init(){ return (Queue*)malloc(sizeof(Queue));}Queue* Insert(Queue *s,int e){ s->next=(Queue*)malloc(sizeof(Queue)); s=s->next; s->e=e; s->next=NULL; cout< e<<" "; return s;}int QueueLen(Queue *s){ int count=0; Queue *p=s; while(p->next!=NULL) { count++; p=p->next; } return count;}Queue* DeleteQueue(Queue *s){ Queue *p=s; s=s->next; int e=s->e; free(p); cout<<"e="< <
转载地址:http://obobi.baihongyu.com/