#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...