資料結構(單向鍊錶)

2021-07-28 11:37:07 字數 1930 閱讀 5403

#ifndef linklist_h

#define linklist_h

//鍊錶節點

template

class linklistdata

linklistdata()

~linklistdata()

//獲取資料

t getdata()

public:

t data; //資料

};template

class linklist

~linklist()

//鍊錶是否為空或null

bool isemptyornull()

else

if (m_root->next != nullptr && m_length > 0)

else

}//鍊錶中資料的數量

int getlength()

//查詢乙個資料是否在鍊錶中

bool contains(t data)

cur = cur->next;

}return

false;

}//新增乙個資料

int add(t data)

linklistdata*adddata = new linklistdata(data);

linklistdata*cur = m_root;

while (cur->next != nullptr)

cur->next = adddata;

m_length++;

}//刪除乙個資料

int remove(t data)

linklistdata*previewdata = locatepriviewdata(deldata);

previewdata->next = deldata->next;

delete deldata;

deldata = nullptr;

m_length--;

}//清空

void clear()

linklistdata*cur = m_root->next;

while (cur != nullptr)

m_length = 0;

m_root->next = nullptr;

}//獲取索引index的資料

linklistdata*operator (int index)

int i = 0;

linklistdata*cur = m_root->next;

while (cur != nullptr && i < index)

if (cur == nullptr || i > index)

return cur;

}protected:

//查詢鍊錶元素

linklistdata*locatedata(t data)

cur = cur->next;

}return

nullptr;

}//查詢乙個鍊錶元素的前驅

linklistdata*locatepriviewdata(linklistdata* locatedata)

linklistdata*cur = m_root->next;

//儲存前驅

linklistdata*previewdata = m_root;

while (cur != nullptr)

previewdata = cur;

cur = cur->next;

}return

nullptr;

}protected:

//長度

int m_length;

//鍊錶的頭資料,為空則表示無資料

linklistdata*m_root;

};#endif

資料結構 單向鍊錶

鍊錶結構的資料格式儲存 include stdafx.h 把這行放在最開始。include includeusing namespace std typedef struct data typedef struct node 這裡與上面的不同是多了node,注意如果沒有這個node,下面的struc...

資料結構 單向鍊錶

錯誤 h next null 或其他 讓指標指向空 的語句執行報錯 null undeclared identifier cannot convert from int to struct node 原因 未引入標頭檔案 include stdio.h 把null定義為乙個空位址是在 stdio標頭...

資料結構 單向鍊錶

include using namespace std template class t class node node const t element element element node const t element,node next element element template c...