现在正在看数据结构,感觉清华大学出版的《数据结构与C++高级教程(第3版)》里翻译有很多逻辑上的错误,虽然如此,但书上还是有很多不错的地方的。今天看到链表,算是复习一下,先把代码帖出来,慢慢再总结:
listitem.h:
Code

listitem.cpp
Code

      链表的实现,有的有头指针,有的没有。但有头指针的时候会减少很多麻烦,在理解上也比没有头指针要简单的多。
再就是有头指针的时候,在对链表进行删除/插入操作的时候只有一个特殊点:头结点。

      删除结点时使用下面赋值语句,会减少很多灾难性的、难以理解的错误:
cur->next = NULL;
delete cur;
cur 
= NULL;

删除非头结点:
prev -> next = cur -> next;
cur->next = NULL;
delete cur;
cur = NULL;
特别地,删除头结点:
head = head -> next;
cur->next = NULL;
delete cur;
cur = NULL;

插入非头结点:
newItem -> next = cur;
prev->next = newItem;

特别地,插入头结点:
newItem -> next = head;
head = newItem;

复制链表时要使用深复制
posted on 2009-10-11 18:17  伴我闯天涯  阅读(370)  评论(0)    收藏  举报