原创 數據結構模板之五:鏈棧

①基本定義採用鏈式存儲結構的棧稱爲鏈棧,和順序棧相比,鏈棧的優點是不存在棧滿上溢出的情況,有關順序棧的內容可以點此查看。②存儲方式與結構棧(a1,a2,...,an-1,an)↓映射③實現順序棧棧空的條件是s->top==-1,而鏈棧棧空

原创 數據結構模板之一:順序表

①基本定義線性表是具有相同特徵的數據結構元素的一個有限序列。順序表即採用順序存儲結構的線性表,可以說是數據結構中最容易理解,也是最常用的存儲方式。②存儲方式與結構線性表(a1,a2,...,an-1,an)↓(直接映射)順序表a1a2..

原创 數據結構模板之八:鏈隊

①基本定義採用鏈式存儲結構的隊列稱爲鏈隊,除了他本身的數據結點類型外,鏈隊還需要一種鏈隊結點類型(其實就是包含了兩個指針的結構體,因爲隊列的操作分別在隊頭和隊尾,所以一個指針指向隊首結點,一個指針指向隊尾結點)。和鏈棧一樣,鏈隊也不存在隊

原创 數據結構模板之四:順序棧

①基本定義棧是一種只允許在一端進行插入或刪除操作的線性表,允許操作的一端叫棧頂,另一端叫棧底。如果用一個無蓋的水杯來形容棧,那麼你接水與喝水的那一端便是棧頂,杯底則是棧底。所以,棧的特點便是“後進先出”,棧的插入操作通常稱爲進棧,棧的刪除

原创 解決VS2017 按ctrl+f5執行程序窗口依然一閃而過的問題(圖文)

或許你也有這樣的經歷,在使用VS編寫完屬於自己的第一個Hello World程序後,執行程序時窗口卻一閃而過......原因可能是你在執行程序時按鍵成f5,而在調試一欄寫得很清楚,f5是開始調試的指令,ctrl+f5纔是開始執行(不調試)

原创 類的多態(Polymorphism)與虛函數(virtual function)

簡單理解多態與虛函數多態性是指一段程序能夠處理多種類型對象的能力,換而言之就是一個接口,多種方式。而虛函數則常用來實現多態性。由同一個基類派生出的多個派生類在繼承着基類的一些特性的同時也表現出一些方面的不同,而對於一些派生類的共有屬性,也

原创 關於VS2017使用scanf報錯的問題(圖文)

在用VS2017編譯一個程序時,如果你在程序中使用了C語言的輸入函數scanf,會發現這樣的警告:大致意思是說scanf這個函數不安全,讓程序員考慮使用scanf_s,並給出了一種停用這個警告的方式。下面給出三種解決方法方法一:在代碼的最

原创 三種整型數組輸入輸出的方法

下面用三個程序來介紹這三種方式,三種方式的目的均相同:輸入10個元素並將其輸出。 ①數組名法 #include <stdio.h> int main() { int i; int a[10]; for(i=0;i<10;i++)

原创 用C語言生成指定範圍內指定個數的隨機數(代碼)

#include <stdio.h> #include <stdlib.h> #include <time.h> void Random(int min, int max, int n) { int i; srand((unsign

原创 局部變量的存儲類別:自動變量和靜態變量

① auto(自動變量)在調用函數時,系統會給這些變量分配儲存空間,調用結束後就自動釋放這些儲存空間。實際上,在定義自動變量時,關鍵字“auto”可以省略。不寫“auto”則默認爲“自動儲存類別”。② static(靜態局部變量)函數中的

原创 數據結構模板之七:環形隊

①基本定義相比順序隊,環形隊不會出現假溢出的現象(由於每次進隊操作時隊尾指針rear增1,而每次出隊時頭指針front也是增1,順序隊中的front與rear一直在逼近MaxSize,當rear=MaxSize-1時,此時“隊滿”,無法再

原创 引用運算符&(C++)

在C++中提供了一種引用運算符“&”,將某一變量定義爲另一個變量的引用變量,改變其中的一個變量兩者均會同步變化。什麼是應用變量?引用變量來源於數學,是計算機語言中能儲存計算結果或能表示值抽象概念。變量可以通過變量名訪問。在指令式語言中,引

原创 數據結構模板之六:順序隊

①基本定義隊列是一種操作受限的線性表,和棧的一端不允許操作不同,隊列的兩端都可進行操作,而且只能是一端進(插入操作),另一端出(刪除操作)。進行插入操作的一端稱爲隊尾,進行刪除操作的一端稱爲隊首或隊頭。新元素進隊後便成爲新的隊尾元素(棧的

原创 定義結構體變量的幾種方式

 首先要注意區分結構體類型和結構體變量,結構體類型是用戶爲滿足需要自己聲明的一種類型,相當於事先準備好的框架,而結構體變量則是使用之前準備好的結構體類型定義的,可以類比“int a; float b;”其中的a,b則是變量。 ① 先建

原创 數據結構模板之二:單鏈表

①基本定義線性表是具有相同特徵的數據結構元素的一個有限序列。鏈表即線性表的鏈式存儲結構,與順序表相比,鏈表可以實現存儲空間的動態管理,而順序表必須事先分配一整塊的存儲空間,這樣會降低存儲空間的利用率。②存儲方式與結構線性表(a1,a2,.