單鏈表模板類

2021-08-19 14:17:00 字數 1995 閱讀 5491

在單鏈表中必然需要定義乙個頭節點來指向鍊錶的第乙個元素,

struct node :public object

;mutable node m_header;

這樣直接定義會有乙個問題,頭節點的構造會呼叫t類的建構函式,這顯然時不需要的,解決方案如下:

mutable struct : public object

m_header;

template class list

virtual

bool insert(const t& e)=0;

virtual

bool insert(int i, const t& e)=0;

virtual

bool remove(int i)=0;

virtual

bool

set(int i, const t& e)=0;

virtual

bool

get(int i, t& e)const =0;

virtual

int find(const t& e) const =0;

virtual

int length()const =0;

virtual

void clear()=0;

};

template class linklist : public list;

mutable struct : public object

m_header;

// node m_header;

int m_length;

int m_step;

node* m_current;

node* position(int i) const

return ret;

}virtual node* create()

virtual

void destroy(node* pn)

public:

linklist()

void push_back(const t& e)

void push_front(const t& e)

void pop_back()

void pop_front()

t back() const

t front() const

bool insert(const t& e)

bool insert(int i, const t& e)

else

}return ret;

}bool remove(int i)

currect->next = todel->next;

m_length--;

destroy(todel);

}return ret;

}bool

set(int i, const t& e)

return ret;

}virtual t get(int i) const

else

}bool

get(int i, t& e)const

return ret;

}int find(const t& e) const

else

}return ret;

}int length()const

void clear()

}virtual

bool move(int i, int step = 1)

return ret;

}virtual

bool next()

return (i == m_step);

}virtual t current()

else

}virtual

bool end()

~linklist()

};

單鏈表 模板類

include using namespace std 宣告單鏈錶類模板 為了說明友元類 template class list 定義鍊錶結點類模板 template class listnode listnode type item data item next null public 成員函式 ...

單鏈表模板類

鍊錶是最基本的資料結構,是一組不連續的資料的集合,鍊錶中每個結點除包含結點元素外,還包含下一結點的位址。對鍊錶可以實現插入 刪除 查詢以及顯示等操作。單鏈表模板類list.h ifndef list h define list h include using namespace std templa...

C 模板類 單鏈表

c 作業,用模板類寫鍊錶,完成了對基本的單鏈表的插入,刪除等。include using namespace std templatestruct node templateclass linkedlist linkedlist t find int index 返回索引對應的值 void remo...