#include
using namespace std;
typedef int datatype;
struct node //結點
};class list
list(const list& l) //拷貝
:_phead(new node)
}list& operator=(list& l)//賦值運算子過載
~list() //析構
deletepcur;
_phead = null;
}void pushback(datatype data) //尾插
void popback() //尾刪
return;
}void pushfront(datatype data) //頭插
void popfront() //頭刪
return;
}void insert(node* pos, datatype data) //任意位置插入
void erase(node* pos) //任意位置刪除
size_t size() //鍊錶大小
return count;
}return 0;
}int empty()const //鍊錶是否為空
return 1;
}node *find(datatype data)
pcur = pcur->_pnext;
}return null;
}void printlist()
cout << "null" << endl;
}private:
node* _phead;
};int main()
{list l1;
node *pos;
size_t size;
l1.pushback(3);
l1.pushback(4);
l1.pushback(5);
l1.pushback(6);
l1.pushback(7);
l1.printlist();
l1.popback();
l1.popback();
l1.printlist();
l1.pushfront(2);
l1.pushfront(1);
l1.printlist();
l1.popfront();
l1.popfront();
l1.printlist();
pos = l1.find(4);
l1.insert(pos, 8);
l1.printlist();
l1.erase(pos);
l1.printlist();
size=l1.size();
list l2(l1);
l2.printlist();
list l3;
l3 = l1;
l3.printlist();
return 0;
若是對於雙向鍊錶的尾插、尾刪等上述操作不明白,可以參照我以前寫的部落格
若是對深拷貝不理解的,可以參照我以前寫的部落格
希望對大家有所幫助!!!!!!
雙向鍊錶封裝
雙向鍊錶 function doublelinkedlist 煉表頭節點 this.head null 鍊錶尾節點 this.fail null 鍊錶長度 this.length 0 在鍊錶尾部新增元素 var newelement new node value if this.head else ...
雙向鍊錶和雙向迴圈鍊錶
和單向鍊錶相比,多了乙個前驅結點。如果他為空,那麼next和prior都指向自己。而對於雙迴圈鍊錶,只需要最後乙個元素的next指向head next,head next的prior指向最後乙個節點即可。新節點s插入鍊錶,s next給p結點,s prior給p prior,然後,p prior n...
迴圈鍊錶,雙向鍊錶
迴圈鍊錶 迴圈鍊錶與順序鍊錶之間的區別 迴圈鍊錶最後乙個資料的next指標域不為空,而是指向頭結點,其他基本操作大體相同,只是在判斷表結束的條件變為判斷節點的引用域是否為頭引用 雙向鍊錶 author neosong date oct 10,2017 4 43 01 pm program of in...