stl內部定義了多種容器和迭代器,方便了資料結構類的使用,且不需關注內部原始碼。為了方便個人使用習慣,我又重寫了乙個鍊錶類,作為學c++後的第乙個專案作業。我將其命名為clist。
/*
clist是乙個鍊錶類,而_clist是鍊錶的乙個單元,iter是乙個迭代器(與stl模板庫用法相同)。
clist的成員函式:
int:getnum()返回clist中的單元數量。
_clist*:add()在clist結尾新增乙個單元,但data為初始值。
_clist*:add(type x)在clist結尾新增乙個單元,且該單元data為x。
_clist*:add(_clist* p,type x)在p後新增乙個單元,且該單元data為x,如果p為null則在開頭新增。
_clist*:add(_clist* p)在p後新增乙個單元但該單元data為初始值。
void:del(clist* p)刪除p指向的元素。
void:del()刪除整個鍊錶的所有元素。
_clist*:
next(_clist* p)返回p的下個單元。
_clist*:prev(_clist* p)返回p的上個單元。
void:putdata(_clist* p,type x)將x賦給p指向的單元的data。
void:putsymbol(_clist*p,int
x)將x賦給p指向的單元的symbol。
t:data(_clist* p)返回p指向的單元的data值。
int:symbol(_clist*p)返回p指向單元的symbol值。
不建議使用未列出的函式。
_clist的變數說明:
_clist* next:該單元的下個單元。
_clist* prev:該單元的上個單元。
t data:該單元的資料值。
int symbol:該單元的標記值。
iter的使用說明:
iter ++:可以使迭代器從現在位置移向下一位置。
t *:返回迭代器現在的data值。
void */
#include
template class _clist
};template class iter
iteroperator ++(int)
prev=(*next).prev;
symbol=(*next).symbol;
data=(*next).data;
thepointer=next;
next=(*next).next;
return
*this;
}iteroperator --(int)
next=(*prev).next;
symbol=(*prev).symbol;
data=(*prev).data;
thepointer=prev;
prev=(*prev).prev;
return
*this;
}bool operator =(_clist*p)
bool operator ==(_clist* p)
bool operator !=(_clist* p)
t operator *()
_clist* operator &()
void operator <<(t x)
};template class clist
int getnum()
return n;
}clist(_clist& h)
_clist* add()
else
return object2;
}_clist* add(t data)
else
return object2;
}_clist* add(iter& object)
else
return object2;
}_clist* add(iterobject,t data)
else
return object2;
}void del(_clist*object)
void del()
head=tail=null;
delete i;
}_clist* next(_clist* pp)
}_clist* prev(_clist*pp)
}void movep(_clist* p)
_clist* init()
void putdata(_clist*p,t data)
void putsymbol(_clist*p,int symbol)
t data(_clist*p)
int symbol(_clist*p)
_clistgethead()
_clistgettail()
};
陣列模擬鍊錶的實現
pragma once 原理很簡單,將陣列的元素看成是鍊錶,或者說是陣列空間起到了記憶體池的作用。然後用兩個結點表示 當前使用 空閒的鍊錶 對效率問題上的一些說明 增 這個無需說,鍊錶直接秒殺。刪 類裡提供的是乙個element結構,裡面包含了使用者的資料。如果你想保持常量的效率 在一些資料介面提供...
STL之佇列 鍊錶實現
1 實驗專案三 佇列的基本操作應用 實驗結果 輸入 8人資訊 a,b,c,d,e,f,g,h 輸出 the dancepartners a bc d e fg is waiting for a partner.實驗分析 1.佇列的操作特點 2.列舉除錯執行過程 現的錯誤並分析原因。要求 1 程式要新...
模擬實現鍊錶
該鍊錶實現的功能 1.指定位置之前插入元素 2.列印鍊錶 3.刪除指定元素 4.刪除所有出現的指定元素 5.查詢指定元素 6.對鍊錶進行氣泡排序 7.頭插 8.頭刪 9.尾插 10.尾刪 11.銷毀鍊錶 下面進行分布詳解 plinknode buynode datatype x 為新增節點開闢空間,...