文章目錄
- 前言
- 一、佇列是什么?
- 二、佇列里面要知道的概念
- 1.出列
- 2.入列
- 3.空佇列
- 上例題
- Java/C代碼
前言
沒想到吧,我皮某人又回來了,
經過這么久的偷懶,哦不,沉淀,于2021年1月18號回歸寫博客的日子,回想那段日子,仿佛就這昨天
別bb了,快上點東西吧
最近會定期更新資料結構方面的內容以及相應的演算法題,等到后期會更新JavaWeb,以及框架方面的知識,作為一只剛飛的菜鳥,需要各路大神為我的博客提出改正,一定第一時間修改,三克油~~
就這?
gogogo整活
提示:以下是本篇文章正文內容,下面案例可供參考
一、佇列是什么?
佇列是一種特殊的線性表…
線性表又是啥

線性表是最基本、最簡單、也是最常用的一種資料結構,線性表(linear list)是資料結構的一種,一個線性表是n個具有相同特性的資料元素的有限序列,
有限序列是什么?

有限序列是指序列中的元素個數是有限的,即序列的長度是有限的,在數學上,序列是被排成一列的物件(或事件);這樣每個元素不是在其他元素之前,就是在其他元素之后,序列可以是有限的,有限序列包含空序列( ),它沒有元素,序列中的元素也稱為項,項的個數稱為序列的長度,
聽不懂…
就是一堆數排成一列!別說了,這不是重點,
二、佇列里面要知道的概念
1.出列
齊步走,121,121,1234
停停停,什么玩意,
這里的出列是在佇列的首部洗掉,
說白了就是把你剛才那一堆數的第一個數給刪了,這個數就出列了,
2.入列
入列的意思就和出列的意思相反,
在佇列的尾部進行插入操作就叫做入列
3.空佇列
空佇列就是沒有元素沒有元素就沒有元素唄,還搞個空佇列,
好聽不行?杠精出門左拐
上例題
可能純概念大家理解不是很好,那我們來玩一個解密游戲,規則是這樣的:首先將第一個數洗掉,緊接著將第二個數放到這串數的末尾,在將第三個數洗掉并將第四個放到這串數的末尾,以此類推,將最后一個數也洗掉,按照洗掉的順序,把這些順序連在一起就是密碼,(來自**《啊哈!演算法》**) 是不是很懵逼,那這樣,應該就好看一些了
原數字串8 5 4 6 3 6 4 2 6 9
首先將第一個數洗掉,緊接著將第二個數放到這串數的末尾
4 6 3 6 4 2 6 9 5 刪8退5
3 6 4 2 6 9 5 6 刪4退6
4 2 6 9 5 6 6 刪3退6
6 9 5 6 6 2 刪4退2
5 6 6 2 9 刪6退9
6 2 9 6 刪5退6
9 6 2 刪6退2
2 6 刪9退6
6 刪2退6
刪6
輸出:8 4 3 4 6 5 6 9 2 6
這么看是不是理解規則了?那還不碼起來???
先給出C語言的部分代碼
while(head < tail)
{
//輸出隊首
printf("%d\t",a[head]);
//出列
head++;
//將新對首入列
a[tail] = a[head];
tail++;
//在將隊首出列
head++;
}
這樣一看是不是頓時就明白了???
什么?不明白?
不明白好好琢磨琢磨
Java/C代碼
C語言代碼
#include <stdio.h>
struct queue{
int a[101];
int head;
int tail;
};
int main()
{
struct queue q;
int i;
q.head = 1;
q.tail = 1;
//初始化佇列
for(i = 1;i<=10;i++)
{
scanf("%d",&q.a[q.tail]);
q.tail++;
}
while(q.head < q.tail)
{
printf("%d\t",q.a[q.head]);
q.head++;
q.a[q.tail] = q.a[q.head];
q.tail++;
q.head++;
}
}
Java代碼
package queue;
import java.util.Scanner;
public class test01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int [] a = new int[101];
/**
* head:指向隊首
* tail:指向隊尾
*/
int head = 1,tail = 1;
for (int i = 1; i <= 10; i++) {
a[tail] = scanner.nextInt();
tail++;
}
while (head < tail){
System.out.println(a[head] + " ");
head++;
a[tail] = a[head];
tail++;
head++;
}
}
}
完美收官
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/250747.html
標籤:其他
上一篇:一周一總結:c語言練習題
下一篇:素數II題解
