日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言自动生成球队名称,C语言实现队(循环队列)

發布時間:2024/4/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言自动生成球队名称,C语言实现队(循环队列) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前用鏈表實現隊,這里用數組實循環隊列,今天又看了一下隊列,發現少了計算隊列長度的函數

隊列的實現代碼,犧牲一個元素存儲空間

#include#define maxsize 10

typedef int datatype;

//定義隊的結構體

struct queue

{

datatype data[maxsize];

int front;

int rear;

};

typedef struct queue Queue;

//初始化隊

void init(Queue *q)

{

q->front=q->rear=0;

}

//判斷是否為空

//這里有兩種方法

//先實現犧牲一個存儲空間的方法,即rear始終指向空

bool Empty(Queue *q)

{

if(q->front==q->rear)

{

return true;

}

else

{

return false;

}

}

//判斷是否滿

bool full(Queue *q)

{

if((q->rear+1)%maxsize==q->front)

{

return true;

}

else

{

return false;

}

}

//入隊

void Push(Queue *q,datatype element)

{

if(!full(q))

{

q->data[q->rear]=element;

q->rear=(q->rear+1)%maxsize;

}

else

{

printf("隊滿!\n");

}

}

//出隊

void Pop(Queue *q)

{

if(!Empty(q))

{

q->front=(q->front+1)%maxsize;

}

else

{

printf("隊空\n");

}

}

//取隊頂元素

datatype Top(Queue *q)

{

if(!Empty(q))

{

return q->data[q->front];

}

else

{

printf("隊空\n");

}

}

隊列的測試代碼

#include#include "CircleQueue.h"

int main()

{

int i=0;

Queue s;

Queue *q=&s;

// struct stack s;

//初始化隊

printf("\n###########初始化隊###########\n");

init(q);

printf("----------------------------------");

//入隊操作

printf("\n###########入隊操作###########\n");

for(i=2;i<=11;i++)

{

Push(q,i);

}

printf("----------------------------------");

//取隊頂元素

printf("\n###########取隊頂元素###########\n");

printf("%d\n",Top(q));

Pop(q);

Pop(q);

printf("----------------------------------");

//入隊操作

printf("\n###########入隊操作###########\n");

for(i=215;i<=219;i++)

{

Push(q,i);

}

printf("----------------------------------");

//出隊操作

printf("\n###########出隊操作###########\n");

for(i=0;i<=10;i++)

{

Pop(q);

}

printf("----------------------------------");

//取隊頂元素

printf("\n###########取隊頂元素###########\n");

Top(q);

printf("----------------------------------");

// //銷毀隊

// printf("\n###########銷毀隊###########\n");

// Push(q,10);

// Destroy(q);

// Top(q);

}

設置一個flag的方法,用flag區分隊空與非空

#include#define maxsize 10

typedef int datatype;

//定義隊的結構體

struct queue

{

datatype data[maxsize];

int front;

int rear;

int flag; //flag=0時隊空,flag=1時隊非空

};

typedef struct queue Queue;

//初始化隊

void init(Queue *q)

{

q->front=q->rear=0;

q->flag=0;

}

//判斷是否為空

//這里有兩種方法

//先實現犧牲一個存儲空間的方法,即rear始終指向空

bool Empty(Queue *q)

{

if(q->flag==0)

{

return true;

}

else

{

return false;

}

}

//判斷是否滿

bool full(Queue *q)

{

if(!Empty(q)&&q->rear==q->front)

{

return true;

}

else

{

return false;

}

}

//入隊

void Push(Queue *q,datatype element)

{

if(!full(q))

{

q->data[q->rear]=element;

q->rear=(q->rear+1)%maxsize;

q->flag=1;

}

else

{

printf("隊滿!\n");

}

}

//出隊

void Pop(Queue *q)

{

if(!Empty(q))

{

q->front=(q->front+1)%maxsize;

if(q->front==q->rear)

{

q->flag=0;

}

}

else

{

printf("隊空\n");

}

}

//取隊頂元素

datatype Top(Queue *q)

{

if(!Empty(q))

{

return q->data[q->front];

}

else

{

printf("隊空\n");

}

}

或者這里把flag改為隊長,那么方法簡單,在每次入隊時加一個元素,出隊時減一個元素

總結

以上是生活随笔為你收集整理的c语言自动生成球队名称,C语言实现队(循环队列)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。