国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C語言循環隊列的表示與實現實例詳解

C語言循環隊列的表示與實現實例詳解

2021-01-21 14:09C語言程序設計 C/C++

這篇文章主要介紹了C語言循環隊列的表示與實現,對于數據結構與算法的研究很有幫助,需要的朋友可以參考下

1.概述:

C語言的隊列(queue),是先進先出(FIFO, First-In-First-Out)的線性表數據結構。在具體應用中通常用鏈表或者數組來實現。隊列只允許在后端(稱為rear)進行插入操作,在前端(稱為front)進行刪除操作。

循環隊列可以更簡單的防止偽溢出的發生,但是隊列大小是固定的。

2.實例代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/* 隊列的順序存儲結構(循環隊列) */
#define MAX_QSIZE 5 /* 最大隊列長度+1 */
typedef struct
{
 QElemType *base; /* 初始化的動態分配存儲空間 */
 int front; /* 頭指針,若隊列不空,指向隊列頭元素 */
 int rear; /* 尾指針,若隊列不空,指向隊列尾元素的下一個位置 */
}SqQueue;
/* 循環隊列的基本操作(9個) */
void InitQueue(SqQueue *Q)
{ /* 構造一個空隊列Q */
 Q->base=malloc(MAX_QSIZE*sizeof(QElemType));
 if(!Q->base) /* 存儲分配失敗 */
  exit(OVERFLOW);
 Q->front=Q->rear=0;
}
void DestroyQueue(SqQueue *Q)
{ /* 銷毀隊列Q,Q不再存在 */
 if(Q->base)
  free(Q->base);
 Q->base=NULL;
 Q->front=Q->rear=0;
}
void ClearQueue(SqQueue *Q)
{ /* 將Q清為空隊列 */
 Q->front=Q->rear=0;
}
Status QueueEmpty(SqQueue Q)
{ /* 若隊列Q為空隊列,則返回TRUE;否則返回FALSE */
 if(Q.front==Q.rear) /* 隊列空的標志 */
  return TRUE;
 else
  return FALSE;
}
int QueueLength(SqQueue Q)
{ /* 返回Q的元素個數,即隊列的長度 */
 return(Q.rear-Q.front+MAX_QSIZE)%MAX_QSIZE;
}
Status GetHead(SqQueue Q,QElemType *e)
{ /* 若隊列不空,則用e返回Q的隊頭元素,并返回OK;否則返回ERROR */
 if(Q.front==Q.rear) /* 隊列空 */
  return ERROR;
 *e=Q.base[Q.front];
 return OK;
}
Status EnQueue(SqQueue *Q,QElemType e)
{ /* 插入元素e為Q的新的隊尾元素 */
 if((Q->rear+1)%MAX_QSIZE==Q->front) /* 隊列滿 */
  return ERROR;
 Q->base[Q->rear]=e;
 Q->rear=(Q->rear+1)%MAX_QSIZE;
 return OK;
}
Status DeQueue(SqQueue *Q,QElemType *e)
{ /* 若隊列不空,則刪除Q的隊頭元素,用e返回其值,并返回OK;否則返回ERROR */
 if(Q->front==Q->rear) /* 隊列空 */
  return ERROR;
 *e=Q->base[Q->front];
 Q->front=(Q->front+1)%MAX_QSIZE;
 return OK;
}
void QueueTraverse(SqQueue Q,void(*vi)(QElemType))
{ /* 從隊頭到隊尾依次對隊列Q中每個元素調用函數vi() */
 int i;
 i=Q.front;
 while(i!=Q.rear)
 {
  vi(Q.base[i]);
  i=(i+1)%MAX_QSIZE;
 }
 printf("\n");
}

延伸 · 閱讀

精彩推薦
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日本不卡高字幕在线2019 | 精品国产区一区二 | 五月婷婷综合激情网 | 黄毛片 | 国产日韩精品一区 | 午夜视频免费在线观看 | 日韩精品一区二区三区四区五区 | 国产色在线观看 | 久久99精品久久久久久久青青日本 | 亚洲国产精品久久久 | 95香蕉视频 | 日本一区二区在线视频 | 天堂资源最新在线 | 日韩中文一区二区三区 | 午夜爱爱毛片xxxx视频免费看 | 欧美综合区 | 日韩一区二区在线免费 | 亚洲福利| 亚洲欧美日韩精品久久奇米色影视 | 北条麻妃一区二区三区中文字幕 | 日韩中文字幕在线播放 | 国产精品免费观看 | 久久久999成人 | 人人爽人人爽人人片av | 中文字幕日产乱码六区小草 | 黄色一区二区三区 | 欧美视频成人 | 日韩有码视频在线 | 国产一区二区黑人欧美xxxx | 亚洲午夜视频在线 | 久久精品麻豆 | 精品免费 | 国产亚洲精品久久久久动 | 国产综合久久 | 欧美午夜一区二区三区免费大片 | 国产毛片视频 | 午夜电影网址 | 在线91| 九九热视频精品在线观看 | 91超碰在线观看 | 免费一区二区三区 |