因為普通的佇列空間無法復用,單純的將rear,front兩個指標進行增加,導致出佇列的資料所佔的空間沒法使用,這樣的話佇列的空間會越來越少,於是出現了環形佇列.
其次,環形佇列中進行約定,預留乙個空間,也就是rear指向的那個位置,這個位置不能存放資料,當其他位置已經存放過資料之後,就認為這個佇列已滿了
} system.out.println("程式退出");
}//用陣列模擬佇列-編寫乙個環形佇列
class circlearrayqueue
//判斷佇列是否滿
public boolean isfull()
//判斷佇列是否為空
public boolean isempty()
//向佇列新增資料
public void addqueue(int n)
arr[rear] = n;
//將rear後移
rear = (rear+1)%maxsize;
}//獲取佇列資料,出佇列
public int getqueue()
//front指向佇列的第乙個元素
//1.先把front對應的值儲存到乙個臨時變數
//2.將front後移,考慮去摸
//3.將臨時儲存的變數返回
int temp = arr[front];
front = (front+1)%maxsize;
return temp;
}//顯示佇列所有資料的方法
public void showqueue()
//從front開始遍歷
for(int i=front;i
}//求出當前佇列有效資料個數的方法
public int size()
//顯示佇列頭部資料
public void headqueue()
system.out.println("頭部資料為:"+arr[front]);
}
資料結構模板之七 環形隊
相比順序隊,環形隊不會出現假溢位的現象 由於每次進隊操作時隊尾指標rear增1,而每次出隊時頭指標front也是增1,順序隊中的front與rear一直在逼近maxsize,當rear maxsize 1時,此時 隊滿 無法再進隊,但實際上佇列裡仍然有空位置 若把存放資料的陣列 首尾相連 將它視作一...
資料結構與演算法學習筆記 緒論(2)
演算法 algorithm 是對特定問題求解方法的一種描述,是指令的有限序列,其中每一條指令表示乙個或多個操作。特性 1.6.1演算法效率的度量 演算法執行時間需通過依據該演算法編制的程式在計算機上執行所消耗的時間來度量。方法通常有兩種 1.6.2時間複雜度度量 演算法中基本操作重複執行的次數是問題...
資料結構與演算法學習筆記
演算法基礎篇 第一章 演算法概述 首先了解一下基本的概念 1.1 什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。演算法可以抽象出5個特徵 ...