首先建立節點node類
node.h
#pragma once
class
node
;
對於node類在這裡data結構最好不要使用int形擴充套件性太低,應該將其變為struct結構可以提公升**的拓展性。
然後建立list類對鍊錶操作
list.h
#pragma once
#include
"node.h"
class
list
;
list.cpp
#include
//測試**
#include
#include
"list.h"
list::
list()
void list::
apend
(int num)
else
}void list::
show()
std::cout << std::endl;}}
void list::
find_index
(int index)
std::cout << temp-
>data << std::endl;}}
}void list::
delete_index
(int index)
else
node* need_delet = temp-
>next;
//儲存刪除的節點位址
temp-
>next = need_delet-
>next;
//將index-1節點接入index+1
delete need_delet;
//刪除當前節點
length--
;//總體長度減一}}
}/** 說明按索引後插入
* index在第幾個後面插入
* num表示插入的資料
*/void list::
insert_index
(int index,
int num)
else
node* insert_node =
new node;
//為插入的節點分配空間
insert_node-
>data = num;
insert_node-
>next = temp-
>next;
temp-
>next = insert_node;
length++;}
}list::
~list()
else
delete head;
std::cout <<
"基類已經釋放"
<< std::endl;
}}
以list類作為基類進行派生得到stack和queque。
stack.h
#pragma once
#include
"list.h"
class
stack
:public list
;
stack.cpp
#include
//為測試使用
#include
"stack.h"
stack::
stack()
:list()
void stack::
pop(
int num)
else
}void stack::
push()
stack::
~stack()
queque.h
#pragma once
#include
"list.h"
class
queque
:public list
;
queque.cpp
#include
"queque.h"
queque::
queque()
queque::
~queque()
void queque::
addq
(int num)
else
}void queque::
deleteq()
下面是測試程式
test.cpp
#include
#include
"stack.h"
#include
"queque.h"
intmain()
測試結果如下:
陣列 鍊錶 堆疊和佇列
資料結構 是指相互之間存在一種或多種特定關係的資料元素的集合。聽起來是不是很抽象,簡單理解 資料結構就是描述物件間邏輯關係的學科。比如 佇列就是一種先進先出的邏輯結構,棧是一種先進後出的邏輯結構,家譜是一種樹形的邏輯結構!初學資料結構的時候很不理解為什麼有 棧 這個東西 佇列很容易理解 無論購物就餐...
陣列鍊錶堆疊和佇列
陣列鍊錶堆疊和佇列 陣列鍊錶堆疊和佇列是最基本的資料結構,任何程式都會涉及到其中的一種或多種。陣列是最最基本的資料結構,很多語言都內建支援陣列。陣列是使用一塊連續的記憶體空間儲存資料,儲存的資料的個數在分配記憶體的時候就是確定的 圖1.1包含n 個資料的陣列 訪問陣列中第 n個資料的時間花費是 o ...
堆疊鍊錶和佇列1
資料結構 是指相互之間存在一種或多種特定關係的資料元素的集合。聽起來是不是很抽象,簡單理解 資料結構就是描述物件間邏輯關係的學科。比如 佇列就是一種先進先出的邏輯結構,棧是一種先進後出的邏輯結構,家譜是一種樹形的邏輯結構!初學資料結構的時候很不理解為什麼有 棧 這個東西 佇列很容易理解 無論購物就餐...