帶煉表頭指標和尾指標的 list 模板實現

2021-07-09 13:06:00 字數 1174 閱讀 2968

templateclass list;

templateclass node;

template node::node():link(0)

template node::node(const t & data)

:info(data),link(0)

templatevoid node::insertafter(node* p)

templatenode* node::removeafter()

#ifndef listclass_h

#define listclass_h

templateclass list; //刪除指定結點

templatelist::list()

templatelist::~list()

templatevoid list::makeempty()

//刪除(釋放)脫離下來的結點

tail=head;

} //表頭指標與表尾指標均指向表頭結點,表示空鏈

templatenode* list::find(t data)

templateint list::length()

return count;

}templatevoid list::printlist()

cout//如果為空,修改tail指向

templatevoid list::insertrear(node*p)

templatevoid list::insertorder(node*p)

tempq->insertafter(p);

//插在tempp指向結點之前,tempq之後

if(tail==tempq) tail=tempq->link;

}//插入tail後面,修改tail

templatenode* list::creatnode(t data)

templatenode* list::deletenode(node* p)

//本函式所用方法可省乙個工作指標,與insertorder比較

#endif

使用只有表尾指標或只有表頭指標的單迴圈鍊錶的情況

使用只有表尾指標沒有表頭指標 迴圈單鏈表指的是最後節點的指標域指向表頭節點,如果要刪除第乙個元素,只需要通過表尾指標找到第二個節點,然後將最後節點的指標指向第二個節點,就將第乙個元素刪除了 單鏈表指的是最後節點的指標域指向 表頭節點,如果要刪除第乙個元素,只需要通過表尾指標找到第二個節點,然後將最後...

鍊錶 頭指標 頭結點

圖1為線性表 zhao,qian,sun,li,zhou,wu,zheng,wang 的邏輯狀態。頭指標 指示鍊錶中第乙個結點 即第乙個資料元素的儲存映像 的儲存位置。同時,由於最後乙個資料元素沒有直接後繼,則線性鍊錶中最後乙個結點的指標為 空 null 圖 線性鍊錶的邏輯狀態 由上述描述可見,單鏈...

鍊錶 頭指標 頭結點

圖1為線性表 zhao,qian,sun,li,zhou,wu,zheng,wang 的邏輯狀態。頭指標 指示鍊錶中第乙個結點 即第乙個資料元素的儲存映像 的儲存位置。同時,由於最後乙個資料元素沒有直接後繼,則線性鍊錶中最後乙個結點的指標為 空 null 圖 線性鍊錶的邏輯狀態 由上述描述可見,單鏈...