1. 程式人生 > >C#佇列Queue用法例項分析

C#佇列Queue用法例項分析

本文例項分析了C#佇列Queue用法。分享給大家供大家參考。具體分析如下:

佇列(Queue)在程式設計中扮演著重要的角色,因為它可以模擬佇列的資料操作。例如,排隊買票就是一個佇列操作,後來的人排在後面,先來的人排在前面,並且買票請求先被處理。為了模擬佇列的操作,Queue在ArrayList的基礎上加入了以下限制

1.元素採用先入先出機制(FIFO,First In First Out),即先進入佇列的元素必須先離開佇列。最先進入的元素稱為隊頭元素。

元素只能被新增到隊尾(稱為入隊),不允許在中間的某個位置插入。也就是說,不支援ArrayList中的Insert方法

2.只有隊頭的元素才能被刪除(稱為出隊),不允許直接對佇列中的非隊頭元素進行刪除,從而保證FIFO機制。也就是說,不支援ArrayList中的Remove方法。

3.不允許直接對佇列中非隊頭元素進行訪問。也就是說,不支援ArrayList中的索引訪問,只允許遍歷訪問

注意:

Queue.Enqueue (object):向Queue中入隊一個物件元素。
Queue.Dequeue ():從Queue中出隊一個物件元素,並將此元素返回。


舉例:

private void button_測試Queue_Click(object sender, EventArgs e)
{
 string[] cars = new string[]{"寶馬","賓士","奧迪","東風","勞斯萊斯"};
 Console.WriteLine("開始入佇列");
 Queue<string> que = new Queue<string>();
 foreach (string str in cars)
 {
  que.Enqueue(str);
  Console.WriteLine("入佇列-{0}",str);
 }
 Console.WriteLine();
 //列印佇列
 PrintQueue(que);
 Console.WriteLine();
 Console.WriteLine("開始出佇列");
 while (que.Count > 0)
 {
  string str = que.Dequeue();
  Console.WriteLine("出佇列-{0}", str);
 }
}
private void PrintQueue(Queue<string> list)
{
 Console.WriteLine("開始列印佇列");
 foreach (string str in list)
 {
  Console.WriteLine(str);
 }
}

相關推薦

C#佇列Queue用法例項分析

本文例項分析了C#佇列Queue用法。分享給大家供大家參考。具體分析如下: 佇列(Queue)在程式設計中扮演著重要的角色,因為它可以模擬佇列的資料操作。例如,排隊買票就是一個佇列操作,後來的人排在後面,先來的人排在前面,並且買票請求先被處理。為了模擬佇列的操作,Queue在ArrayList的基礎上加入了

C++ stl佇列Queue用法介紹:刪除,插入等操作程式碼舉例

C++佇列queue模板類的定義在<queue>標頭檔案中,queue 模板類需要兩個模板引數,一個是元素型別,一個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。     C++佇列Queue是一種容器介面卡,它給予程式設計師一種先進先出

C++ 佇列queue用法

  C++佇列queue模板類的定義在<queue>標頭檔案中,queue 模板類需要兩個模板引數,一個是元素型別,一個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。     C++佇列Queue是一種容器介面卡,它給予程式設計

JavaScript引用型別Object常見用法例項分析

1、JavaScript資料型別 (1)基本型別 5種基本型別:Undefined、Null、Boolean、Number、String (2)引用型別 5種引用型別:Object、Array、Date、RepExp、Function (3)基本型別與引用型別的異同:

java佇列(Queue)用法總結

1.佇列的特點 佇列是一種比較特殊的線性結構。它只允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。 佇列中最先插入的元素也將最先被刪除,對應的最後插入的元素將最後被刪除。因此佇列又稱為“先進先出”(F

C++ pair的用法例項詳解(結構體模板應用初探)

1 pair的應用(結構體模板)pair是將2個數據組合成一個數據,當需要這樣的需求時就可以使用pair,如stl中的map就是將key和value放在一起來儲存。另一個應用是,當一個函式需要返回2個數據的時候,可以選擇pair。標頭檔案:#include<utilit

C++虛擬函式表例項分析

我們先來看看程式碼: #include <iostream> using namespace std; class Base {public:    virtual void f() {cout<<"base::f"<<endl;}  &

C++佇列queue基本操作

C++佇列queue模板類的定義在<queue>標頭檔案中,queue 模板類需要兩個模板引數,一個是元素型別,一個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。C++佇列Queue是一種容器介面卡,它給予程式設計師一種先進先出(FIFO)

C語言條件運算子例項分析

************ 條件運算子:?: 例子:max=(a>b) ? a:b; 表示如果a大於b,那麼a賦值給max,否則是b賦值給max; 等價於:  if(a>b)              max=a;              else      

[queue] c++優先佇列(priority_queue)用法詳解

要包含標頭檔案#include <queue> 優先佇列具有佇列的所有特性,包括基本操作,只是在這基礎上添加了內部的一個排序,它本質是一個堆實現的  定義:priority_queue<Type, Container, Functional> T

C++ 中queue佇列)的用法

#include <iostream> #include <queue> #include <assert.h> 呼叫的時候要有標頭檔案: #include<stdlib.h>| | #inc

C++ 中 queue佇列)的用法(常用)

#include <iostream>#include <queue>#include <assert.h>/*呼叫的時候要有標頭檔案: #include<stdlib.h> 或 #include<cstdlib&

C++ STL模板之queue佇列用法

#include <iostream> #include <queue> #include <assert.h> /* 呼叫的時候要有標頭檔案: #incl

C#基礎:棧stack和佇列queue

棧stack和佇列queue   這裡只談一下棧和佇列的簡單運用和理解。 //棧Stack 壓棧push 出棧pop 獲取棧頂peek 判斷有沒有contains Stack<int> shuzi = new Stack<int>(); shu

C++】STL:map例項分析

【1】map容器 map 是關聯容器。容器中的每一個元素都是由一個鍵值和一個數據值組成的。 set 是一個集合它以其元素作為鍵值(同一個鍵值只能出現一次),且預設以升序排列。 list 是一個順序容器。 【2】map容器使用方法以及例項 (1)定義、插入資料方法例項 // m

Python使用Ctypes與C/C++ DLL檔案通訊過程介紹及例項分析

專案中可能會經常用到第三方庫,主要是出於程式效率考慮和節約開發時間避免重複造輪子。無論第三方庫開源與否,程式語言是否與當前專案一致,我們最終的目的是在當前程式設計環境中呼叫庫中的方法並得到結果或者藉助庫中的模組實現某種功能。這個過程會牽涉到很多東西,本篇文章將簡要的介紹一下該過程的一些問題。 1.背景 多

pow函式(數學次方)在c語言的用法,兩種編寫方法例項( 計算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值)

關於c語言裡面pow函式,下面借鑑了某位博主的一篇文章: 標頭檔案:#include <math.h> pow() 函式用來求 x 的 y 次冪(次方),x、y及函式值都是double型 ,其原型為:    double pow(double x, double y

簡單例項分析objdump反彙編用法

objdump -rdS 可可執行檔案   objdump命令是用檢視目標檔案或者可執行的目標檔案的構成的gcc工具。   1. 準備程式碼hello.c #include <linux/module.h> #include <linux/

四、C++實現佇列(queue)資料結構

本文使用C++實現佇列資料結構,與棧一樣,佇列(queue)也是線性邏輯的資料結構,佇列結構同樣支援物件的插入和刪除,但是兩種操作的物件範圍分別被限制於隊尾和隊頭,並且這兩種操作又分別被稱為入隊和出隊。 佇列結構的特點:先進先出(First in first out,FIFO) 一、佇列

C++ 佇列queue)簡介

C++佇列queue模板類的定義在<queue>標頭檔案中,queue 模板類需要兩個模板引數,一個是元素型別,一個容器型別,元素型別是必要的,容器型別是可選的。C++佇列queue是一種容器介面卡,它給予程式設計師一種先進先出(FIFO)的資料結構。 C++佇列Queue類成員函式