2020.12.18 學習筆記,未完待續。資料結構是計算機儲存、組織資料的方式即將碩士畢業從事c++開發人員,修煉內功,歡迎糾錯與討論。
線性表是具有n個相同型別元素的有限序列(n ≥ 0)
常用的線性表有:
陣列是一種順序儲存的線性表,所有元素的記憶體位址是連續的
在很多程式語言中,陣列都有個致命的缺點:
動態陣列一般需要下面的這些介面。
**如下:
template
<
class
t>..
.int
size()
;//元素的數量
bool
isempty()
;//是否為空
bool
contains
(t element)
;//是否包含某個元素
void
pushback
(t element)
;//尾端新增元素
t at
(int index)
;//返回index位置對應的元素
t set
(int index, t element)
;//設定index位置的元素
void
add(
int index, t element)
;//往index位置新增元素
t remove
(int index)
;//刪除index位置對應的元素
intindexof
(t element)
;//檢視元素的位置
void
clear()
;//清楚所有元素..
.
無參構造呼叫有參構造,如果構造動態陣列的空間小於預設空間,則以預設空間構造動態陣列。
**如下:
template
<
class
t>
myarray
::myarray()
:myarray
(default_capacity)
template
<
class
t>
myarray
::myarray
(int capacity)
template
<
class
t>
myarray::~
myarray()
template
<
class
t>
int myarray
::size()
如果msize==0,則陣列為空。
template
<
class
t>
bool myarray
::isempty()
首先索引檢查,索引越界丟擲索引。
template
<
class
t>
void myarray
::checkindex
(int index)
然後,根據索引檢視陣列元素。
template
<
class
t>
t myarray
::at
(int index)
檢查索引,替換索引位置的元素。
template
<
class
t>
t myarray
::set
(int index, t element)
遍歷陣列,找到元素返回位置;
找不到返回-1(element_not_found)
template
<
class
t>
int myarray
::indexof
(t element)
}
根據檢視元素位置,如果包含則不等於-1.
template
<
class
t>
bool myarray
::contains
(t element)
設定msize = 0
template
<
class
t>
void myarray
::clear()
//類外實現 輸出流《過載
template
<
class
t>
ostream&
operator
<<
(ostream& arrcout, myarray
& arr)
return arrcout;
}
從前往後,向前覆蓋
}從後往前覆蓋
資料結構與演算法學習筆記
演算法基礎篇 第一章 演算法概述 首先了解一下基本的概念 1.1 什麼是演算法呢?從字面意義上理解,演算法就是用於計算的方法,用這種方法達到預期的結果。通俗的講,演算法可以理解為乙個完整的解題步驟,由一些基本的運算和規定的運算順序組成。通過這樣的解題步驟可以解決特定的問題。演算法可以抽象出5個特徵 ...
動態規劃 資料結構與演算法學習
求最值窮舉 重疊子問題 暴力窮舉效率低下 最優子結構 通過子問題最值得到原問題最值 狀態轉移方程 正確的窮舉 明確 狀態 定義dp陣列 函式的意義 明確 選擇 明確base case fibnacci數列 遞迴 intfib int n 備忘錄解法,自頂向下 intfib int n inthelp...
《戀上資料結構與演算法》筆記(七) 二叉樹
二 二叉樹 三 leetcode演算法題 跳轉到目錄 跳轉到目錄 跳轉到目錄 跳轉到目錄 跳轉到目錄 節點的高度 從當前節點到最遠葉子節點的路徑上的節點總數。樹的深度 所有節點深度的最大值。樹的高度 所有節點高度的最大值。跳轉到目錄 跳轉到目錄 跳轉到目錄 跳轉到目錄 a 真二叉樹 跳轉到目錄 b ...