最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

用C++實現(xiàn)隊列的程序代碼

 更新時間:2013年05月29日 14:51:06   作者:  
本篇文章是對使用C++實現(xiàn)隊列的程序代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
C++實現(xiàn)隊列,如有不足之處,還望指正
復(fù)制代碼 代碼如下:

// MyQueue.cpp : 定義控制臺應(yīng)用程序的入口點。
//實現(xiàn)鏈?zhǔn)疥犃校╭ueue),包括一個頭結(jié)點。隊列操作包括在隊頭出隊(pop)、在隊尾入隊(push)、
//取得隊頭元素(front_element)、取得隊尾元素(back_element)、隊列元素個數(shù)(size)、
//隊列是否為空(empty)。
#include "stdafx.h"
#include <iostream>
using namespace std;
//定義隊列的節(jié)點結(jié)構(gòu)
template <class T>
struct NODE
{
 NODE<T>* next;
 T data;
};
template <class T>
class MyQueue
{
public:
 MyQueue()
 {
  NODE<T>* p = new NODE<T>;
  if (NULL == p)
  {
   cout << "Failed to malloc the node." << endl;
  }
  p->data = NULL;
  p->next = NULL;
  front = p;
  rear = p;
 }
//在隊尾入隊
 void push(T e)
 {
  NODE<T>* p = new NODE<T>;
  if (NULL == p)
  {
   cout << "Failed to malloc the node." << endl;
  }
  p->data = e;
  p->next = NULL;
  rear->next = p;
  rear = p;
 }
//在隊頭出隊
 T pop()
 {
  T e;
  if (front == rear)
  {
   cout << "The queue is empty." << endl;
   return NULL;
  }
  else
  {
   NODE<T>* p = front->next;
   front->next = p->next;
   e = p->data;
   //注意判斷當(dāng)只有一個元素,且刪除它之后,rear指向的node被刪除
   //應(yīng)將其指向頭結(jié)點
   if (rear == p)
   {
    rear = front;
   }
   delete p; p = NULL;
   return e;
  }
 }
 //取得隊頭元素
 T front_element()
 {
  if (front == rear)
  {
   cout << "The queue is empty." << endl;
   return NULL;
  }
  else
  {
   NODE<T>* p = front->next;
   return p->data;
  }
 }
 T back_element()
 {
  if (front == rear)
  {
   cout << "The queue is empty." << endl;
   return NULL;
  }
  else
  {
   return rear->data;
  }
 }

 //取得隊列元素個數(shù)
 int size()
 {
  int count(0);
  NODE<T>* p = front;
  while (p != rear)
  {
   p = p->next;
   count++;
  }
  return count;
 }

 //判斷隊列是否為空
 bool empty()
 {
  if (front == rear)
  {
   return true;
  }
  else
  {
   return false;
  }
 }
private:
 NODE<T>* front; //指向頭結(jié)點的指針。 front->next->data是隊頭第一個元素。
 NODE<T>* rear;//指向隊尾(最后添加的一個元素)的指針
};
int _tmain(int argc, _TCHAR* argv[])
{
 MyQueue<int> myqueue;
 cout << myqueue.size() << endl;
 myqueue.push(10);
 myqueue.push(20);
 myqueue.push(30);
 cout << myqueue.front_element() << endl;
 cout << myqueue.back_element() << endl;
 myqueue.pop();
 if (myqueue.empty())
 {
  cout << "The queue is empty now." << endl;
 }
 else
 {
  cout << "The queue has " << myqueue.size() << " elements now." << endl;
 }
 myqueue.pop();
 myqueue.pop();
 if (myqueue.empty())
 {
  cout << "The queue is empty now." << endl;
 }
 else
 {
  cout << "The queue has " << myqueue.size() << " elements now." << endl;
 }
 return 0;
}

相關(guān)文章

  • C語言超詳細(xì)講解getchar函數(shù)的使用

    C語言超詳細(xì)講解getchar函數(shù)的使用

    C 庫函數(shù) int getchar(void) 從標(biāo)準(zhǔn)輸入 stdin 獲取一個字符(一個無符號字符)。這等同于 getc 帶有 stdin 作為參數(shù),下面讓我們詳細(xì)來看看
    2022-05-05
  • 簡單總結(jié)C語言中各種類型的指針的概念

    簡單總結(jié)C語言中各種類型的指針的概念

    這篇文章主要簡單總結(jié)了C語言中各種類型的指針的概念,指針可以說是C語言本身所具有的最大特性,平時根據(jù)不同使用場合習(xí)慣地將其簡單分類,需要的朋友可以參考下
    2016-03-03
  • Qt 自定義分頁控件的實現(xiàn)

    Qt 自定義分頁控件的實現(xiàn)

    在應(yīng)用程序開發(fā)時經(jīng)常會遇到數(shù)據(jù)分頁的需求,每一頁展示特定數(shù)量的數(shù)據(jù),通過點擊按鈕翻頁或者輸入頁碼跳轉(zhuǎn)到指定頁,本文就來介紹一下Qt 自定義分頁控件的實現(xiàn),感興趣的可以了解一下
    2023-11-11
  • 關(guān)于C++函數(shù)模版的實現(xiàn)講解

    關(guān)于C++函數(shù)模版的實現(xiàn)講解

    今天小編就為大家分享一篇關(guān)于關(guān)于C++函數(shù)模版的實現(xiàn)講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • DSP中浮點轉(zhuǎn)定點運算--定點數(shù)模擬浮點數(shù)運算及常見的策略

    DSP中浮點轉(zhuǎn)定點運算--定點數(shù)模擬浮點數(shù)運算及常見的策略

    本文主要講解DSP中定點數(shù)模擬浮點數(shù)運算及常見的策略,具有參考價值,需要的朋友可以參考一下。
    2016-06-06
  • C語言報錯:Buffer Overflow的原因和解決辦法

    C語言報錯:Buffer Overflow的原因和解決辦法

    Buffer Overflow是C語言中常見且危險的內(nèi)存錯誤之一,它通常在程序試圖向緩沖區(qū)(如數(shù)組或內(nèi)存塊)寫入超過其容量的數(shù)據(jù)時發(fā)生,本文將詳細(xì)介紹Buffer Overflow的產(chǎn)生原因,提供多種解決方案,需要的朋友可以參考下
    2024-07-07
  • C 語言編寫一個計算器界面(可視化界面和多功能)

    C 語言編寫一個計算器界面(可視化界面和多功能)

    今天給大家分享一個計算器功能,主要功能有加法減法乘除法求余功能,用戶可以在主菜單選擇需要計算的功能,接下來根據(jù)用戶輸入的數(shù)字進(jìn)行計算輸出結(jié)果,喜歡的朋友拿去用吧
    2021-06-06
  • 基于C語言實現(xiàn)創(chuàng)意多彩貪吃蛇游戲

    基于C語言實現(xiàn)創(chuàng)意多彩貪吃蛇游戲

    這篇文章主要介紹了如何利用C語言實現(xiàn)一個創(chuàng)意多彩貪吃蛇游戲,這是一個純C語言外加easyx庫的繪圖函數(shù)制作而成的有趣小游戲,無需引入額外資源,感興趣的可以動手嘗試一下
    2022-08-08
  • C語言函數(shù)聲明以及函數(shù)原型超詳細(xì)講解示例

    C語言函數(shù)聲明以及函數(shù)原型超詳細(xì)講解示例

    這篇文章主要介紹了C語言函數(shù)聲明以及函數(shù)原型超詳細(xì)講解,C語言代碼由上到下依次執(zhí)行,原則上函數(shù)定義要出現(xiàn)在函數(shù)調(diào)用之前,否則就會報錯。但在實際開發(fā)中,經(jīng)常會在函數(shù)定義之前使用它們,這個時候就需要提前聲明
    2023-02-02
  • C++實現(xiàn)LeetCode(202.快樂數(shù))

    C++實現(xiàn)LeetCode(202.快樂數(shù))

    這篇文章主要介紹了C++實現(xiàn)LeetCode(202.快樂數(shù)),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評論

南安市| 万盛区| 大名县| 松滋市| 漯河市| 望都县| 宁强县| 威远县| 应城市| 正镶白旗| 大连市| 扬中市| 七台河市| 清水河县| 兴安县| 密云县| 大安市| 蒲江县| 嵊泗县| 军事| 东宁县| 寿光市| 措美县| 清苑县| 临西县| 西丰县| 寿阳县| 和林格尔县| 通江县| 洪雅县| 洛阳市| 扬州市| 房产| 海伦市| 红桥区| 嘉义市| 拉萨市| 留坝县| 象州县| 鞍山市| 合川市|