**思路:**單鏈表屬於線性表中的連式結構,邏輯上數連續的,但是物理儲存上是不連續的,宣告鍊錶節點結構,然後就是指標的運用,
test.h
#define _crt_secure_no_warnings 1
#include
#include
using
namespace std;
typedef
int sltdatatype;
typedef
struct slistnode
slistnode;
class
slist
;
main.c
#define _crt_secure_no_warnings 1
#include
"test.h"
slist::
slist()
//建構函式
slist::
~slist()
while
(this
->_head !=
nullptr)}
slistnode* slist::
buyslistnode
(sltdatatype x)
return tmp;
}void slist::
slistpushfront
(sltdatatype x)
void slist::
slistpopfront()
slistnode* cur =
this
->_head;
this
->_head = cur-
>_next;
delete cur;
}slistnode* slist::
slistfind
(sltdatatype x)
slistnode* cur =
this
->_head;
while
(cur)
cur = cur-
>_next;
} cout <<
"表中沒有該值"
<< endl;
return
nullptr;}
void slist::
slistinsert
(sltdatatype x)
slistnode*cur,
*prev;
prev = cur =
this
->_head;
while
(cur)
prev = cur;
cur = cur-
>_next;}}
void slist::
slisterase
(sltdatatype x)
slistnode* cur,
*prev =
nullptr
; cur =
this
->_head;
while
(cur)
else
delete cur;
return;}
prev = cur;
cur = cur-
>_next;}}
void slist::
slistreverse()
elseif(
this
->_head-
>_next ==
nullptr
)else
this
->_head = prev;}}
void slist::
slistprint()
else
cout <<
"null"
<< endl;}}
intmain()
通過陣列模擬實現單鏈表
一般情況下,在c或c 裡面實現單鏈表需要使用結構體,這是一種動態鍊錶,這種鍊錶基本可以不受空間的限制,動態的分配記憶體,但是在c 中使用new運算子來申請空間速度很慢,在一般的演算法題目中,可以採用陣列來模擬鍊錶,這是一種靜態鍊錶。這種模擬確實存在一定的空間浪費,但是我們只是為了解決演算法題目,有一...
C 模擬實現List
雙向鍊錶 include includeusing namespace std typedef nodenode templatestruct node t data 鍊錶中的資料 node pnext 下乙個節點 node ppre 前乙個節點 templateclass list templat...
c 模擬實現堆
這次我們來模擬實現堆,首先堆是乙個完全二叉樹,每個元素都有乙個關鍵碼,儲存相應的資料,堆分為最大堆和最小堆。最大堆 最大堆任意乙個節點都大於它左右孩子的關鍵碼,堆頂元素最大。最小堆 最小堆任意乙個節點都小於它左右孩子的關鍵碼,堆頂元素最小。因此我們得出以下結論 堆儲存在下標為0開始計數的陣列中,因此...