<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                棧是先進后出,隊列則是先進先出.下面貼一下隊列的基本操作. ### 1.隊列的順序表示. #### 1.1隊列的結構體定義 ~~~ #include <stdio.h> #include <stdlib.h> typedef int DataType; #define MAXNUM 20 /*隊列中元素的最大個數*/ struct Seqqueue /*順序隊列類型定義*/ { int f,r; DataType q[MAXNUM]; }; typedef struct Seqqueue Seqqueue,*PSeqqueue; /*創建一個空隊列*/ PSeqqueue createEmptyqueue(void); /*判斷隊列是否為空*/ int isEmptyqueue_seq(PSeqqueue paqu); /*在隊列中插入一個元素*/ void enqueue_seq(PSeqqueue paqu,DataType x); /*刪除隊頭元素*/ void dequeue_seq(PSeqqueue paqu); /*對非空隊列求隊頭元素*/ DataType frontqueue_seq(PSeqqueue paqu); ~~~ #### 1.2創建隊列 ~~~ PSeqqueue createEmptyqueue(){ PSeqqueue paqu=(PSeqqueue)malloc(sizeof(struct Seqqueue)); if (paqu==NULL) { printf("Out of space.\n"); }else{ paqu->r=paqu->f=0; } return paqu; } ~~~ #### 1.3隊列中插入元素 ~~~ void enqueue_seq(PSeqqueue paqu,DataType x){ if ((paqu->r+1)%MAXNUM==paqu->f) { printf("Full queue.\n"); }else{ paqu->q[paqu->r]=x; paqu->r=(paqu->r+1)%MAXNUM; } } ~~~ #### 1.4刪除對頭元素 ~~~ void dequeue_seq(PSeqqueue paqu){ if (isEmptyqueue_seq(paqu)) { printf("Empty queue\n"); }else{ paqu->f=(paqu->f+1)%MAXNUM; } } ~~~ #### 1.5返回對頭元素 ~~~ DataType frontqueue_seq(PSeqqueue paqu){ return paqu->q[paqu->f]; } ~~~ #### 1.6判斷隊列是否為空. ~~~ int isEmptyqueue_seq(PSeqqueue paqu){ return paqu->f=paqu->r; } ~~~ #### 1.7測試 ~~~ int main(){ PSeqqueue queue=createEmptyqueue(); enqueue_seq(queue,2); enqueue_seq(queue,3); enqueue_seq(queue,4); printf("%d\n",frontqueue_seq(queue)); return 0; } ~~~ ###2.隊列的鏈式表示 #### 2.1結構體定義和函數聲明 ~~~ #include <stdio.h> #include <stdlib.h> typedef int Datatype; struct Node; typedef struct Node *PNode; struct Node { Datatype info; PNode link; }; struct LinkQueue { PNode f; PNode r; }; typedef struct LinkQueue *PLinkQueue; //創建一個空隊列 PLinkQueue createEmptyQueue_link(); //判斷隊列是否為空 int isEmptyQueue_link(PLinkQueue plqu); //進隊列 void enQueue_link(PLinkQueue plqu,Datatype x); //出對列 void deQueue_link(PLinkQueue plqu); //在非空隊列中求對頭元素 Datatype frontqueue_link(PLinkQueue plqu); ~~~ #### 2.2創建隊列 ~~~ PLinkQueue createEmptyQueue_link(){ PLinkQueue plqu=(PLinkQueue)malloc(sizeof(struct LinkQueue)); if (plqu==NULL) { printf("Out of space.\n"); }else{ // PNode pnode=(PNode)malloc(sizeof(struct Node)); plqu->f=plqu->r=NULL; } return plqu; } ~~~ #### 2.3入隊列 ~~~ void enQueue_link(PLinkQueue plqu,Datatype x){ PNode pnode=(PNode)malloc(sizeof(struct Node)); if(pnode==NULL){ printf("Out of space.\n"); }else{ pnode->info=x; pnode->link=NULL; if (plqu->f==NULL) { plqu->f=pnode; }else{ plqu->r->link=pnode; } plqu->r=pnode; } } ~~~ #### 2.4刪除隊尾元素 ~~~ void deQueue_link(PLinkQueue plqu){ PNode pnode; if (plqu->f==NULL) { printf("Empty Queue\n"); }else{ pnode=plqu->f; plqu->f=plqu->f->link; free(pnode); } } ~~~ #### 2.5返回對頭元素 ~~~ Datatype frontqueue_link(PLinkQueue plqu){ printf("%d\n",plqu->f->info); return(plqu->f->info); } ~~~ #### 2.6隊列是否為空 ~~~ int isEmptyQueue_link(PLinkQueue plqu){ return (plqu->f==NULL); } ~~~ #### 2.7測試 ~~~ int main(){ PLinkQueue p=createEmptyQueue_link(); enQueue_link(p,5); enQueue_link(p,15); enQueue_link(p,35); frontqueue_link(p); deQueue_link(p); frontqueue_link(p); return 0; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看