c 模擬實現單鏈表

2021-10-04 08:29:55 字數 1962 閱讀 1446

**思路:**單鏈表屬於線性表中的連式結構,邏輯上數連續的,但是物理儲存上是不連續的,宣告鍊錶節點結構,然後就是指標的運用,

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開始計數的陣列中,因此...