C語言/C++程式設計學習:棧的程式碼實現之陣列方案

小辰帶你學知識發表於2018-06-14

C語言是程式導向的,而C++是物件導向的

C和C++的區別:

C是一個結構化語言,它的重點在於演算法和資料結構。C程式的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制)。

C++,首要考慮的是如何構造一個物件模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取物件的狀態資訊得到輸出或實現過程(事務)控制。 所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設計這個概念已經被融入到C++之中 ”。

C與C++的最大區別:在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設計這個概念已經被融入到C++之中 ”,而就語言本身而言,在C中更多的是演算法的概念。那麼是不是C就不重要了,錯!演算法是程式設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,“C加上好的設計”也能寫出非常好的東西。

棧是一種具有從巨集觀上來看是“先進後出”功能特點的資料結構。可以由陣列或者連結串列來實現。

其實現原理是從“一端”操作,導致先儲存的資料最後被取出。有棧頂、棧底等因素組成。:棧的程式碼實現之陣列方案,中對棧的記憶體實現原理進行了詳解。這裡只從巨集觀上來理解,以及相關程式碼如何實現。

其結構體型別為:

#define N 30

struct _stack

{

int top;

int data[N];

};

typedef struct _stack mystack;

對棧的操作通常有初始化、判斷棧空、棧滿,入棧,操作,清空等操作。這裡分別實現:

小編推薦一個學C語言/C++的學習裙【 七三零,一三零,二二一 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多幹貨和技術資料分享!

小編推薦一個學C語言/C++的學習裙【 七三零,一三零,二二一 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多幹貨和技術資料分享!

呼叫程式碼:

int main() {

mystack ms;

init(&ms);

int flag = 0;

int value = 0;

value = 0;

flag = push(&ms, value);

if (flag)

{

printf(“%d 入棧成功 “, value);

}

else

{

printf(“%d 入棧失敗 “, value);

}

value = 1;

flag = push(&ms, value);

if (flag)

{

printf(“%d 入棧成功 “, value);

}

else

{

printf(“%d 入棧失敗 “, value);

}

value = 2;

flag = push(&ms, value);

if (flag)

{

printf(“%d 入棧成功 “, value);

}

else

{

printf(“%d 入棧失敗 “, value);

}

show(&ms);

//彈出棧

int output_value = 0;

int output_flag = 0;

output_flag = pop(&ms, &output_value);

if (output_flag)

{

printf(“出棧成功,出棧的資料為:%d “, output_value);

}

else

{

printf(“出棧失敗 “);

}

output_flag = pop(&ms, &output_value);

if (output_flag)

{

printf(“出棧成功,出棧的資料為:%d “, output_value);

}

else

{

printf(“出棧失敗 “);

}

output_flag = pop(&ms, &output_value);

if (output_flag)

{

printf(“出棧成功,出棧的資料為:%d “, output_value);

}

else

{

printf(“出棧失敗 “);

}

show(&ms);

system(“pause”);

return 0;

}

測試結果:

小編推薦一個學C語言/C++的學習裙【 七三零,一三零,二二一 】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多幹貨和技術資料分享!

這些是C/C++能做的

伺服器開發工程師、人工智慧、雲端計算工程師、資訊保安(黑客反黑客)、大資料 、資料平臺、嵌入式工程師、流媒體伺服器、資料控解、影像處理、音訊視訊開發工程師、遊戲伺服器、分散式系統、遊戲輔助等

相關文章