标签:div height ati block out 实现 学习 mode default
struct Node{ DataType info; Node * next; }; typedef Node* PNode; struct LinkQueue{ PNode front; PNode rear; }; typedef LinkQueue * PLinkQueue;
PLinkQueue createEmptyQueue(){ PLinkQueue plqu = (PLinkQueue)malloc(sizeof(LinkQueue)); if (plqu!=NULL) { plqu->front=NULL; plqu->rear =NULL; }else { cout<<"Out of space "<<endl; return NULL; } return plqu; }
int isEmptyQueue(PLinkQueue plqu){ return plqu->front==NULL; }
例如,在图 1 的基础上,我们依次将 {1,2,3}
依次入队,各个数据元素入队的过程如图 2 所示:
void enQueue( PLinkQueue plqu, DataType x ) { PNode p; p = (PNode )malloc( sizeof( struct Node ) ); /*申请新结点空间*/ if ( p == NULL ) printf("Out of space!"); /*申请新结点失败*/ else { p->info = x; p->next = NULL; /*填写新结点信息*/ if (plqu->front == NULL) plqu->front = p; /*插入前是空队列*/ else plqu->rear->next= p; /*将新结点插入*/ plqu->rear = p; /*修改队尾指针*/ } cout<<plqu->front->info<<" "; cout<<plqu->rear->info<<" "<<endl; }
当链式队列中,有数据元素需要出队时,按照 "先进先出" 的原则,只需将存储该数据的节点以及它之前入队的元素节点按照原则依次出队即可。这里,我们先学习如何将队头元素出队。
链式队列中队头元素出队,需要做以下 3 步操作:
例如,在图 2b) 的基础上,我们将元素 1 和 2 出队,则操作过程如图 3 所示:
void deQueue(PLinkQueue plqu){ PNode p; if (plqu->front==NULL) { cout<<"Empty queue"<<endl; }else { p=plqu->front;//取得头指针 plqu->front=p->next;//修改头指针 free(p); } //cout<<plqu->front->info<<" "; //cout<<plqu->rear->info<<" "<<endl; }
DataType getFrontQueue(PLinkQueue plqu){ if (plqu->front==NULL) { cout<<"Empty"; return -1; }else { // cout<<plqu->rear->info<<endl; return plqu->front->info; } }
void display(PLinkQueue plqu){ PLinkQueue fr=plqu; if (plqu->front==NULL) { return; }else { while(fr->front!=NULL){ cout<<fr->front->info<<" "; fr->front=fr->front->next; } } }
标签:div height ati block out 实现 学习 mode default
原文地址:https://www.cnblogs.com/BlairGrowing/p/12983814.html