带表头结点的单链表 表头结点位于表的最前端,本身不 带数据,仅标志表头。 设置表头结点的目的是统一空表与 非空表的操作,简化链表操作的实 现 非空表 空表
带表头结点的单链表 ◼ 表头结点位于表的最前端,本身不 带数据,仅标志表头。 ◼ 设置表头结点的目的是统一空表与 非空表的操作,简化链表操作的实 现。 非空表 空表 first a1 an 0 first 0
在带表头结点的单链表 第一个结点前插入新结点 first- first p 插入 newnode newnode first first p 插入p newnode newnode newnode->link=p->link; p->link- newnode
在带表头结点的单链表 第一个结点前插入新结点 newnode->link = p->link; p->link = newnode; first newnode first newnode 插入 first newnode 0 first newnode 0 插入 p p p p
从带表头结点的单链表中删除第一个结点 first 非空表 first p 9 first-+ q=p->link p->link=g->link first delete g;\ q (空表)
q = p->link; p->link = q->link; delete q; 从带表头结点的单链表中删除第一个结点 first first (非空表) first first 0 (空表) 0 p q p q
单链表的模板类 类模板将类的数据成员和成员函数 设计得更完整、更灵活。 类模板更易于复用。 在单链表的类模板定义中,增加了 表头结点
单链表的模板类 ◼ 类模板将类的数据成员和成员函数 设计得更完整、更灵活。 ◼ 类模板更易于复用。 ◼ 在单链表的类模板定义中,增加了 表头结点
用模板定义的单链表类 template <class Type> class list template <class Type> class ListNode friend class List<Type>; T ype data ∥/结点数据 Listnode<Type>link;∥结点链接指针 public: Listnode(): link (nuli){}/构造函数 ListNode( type& item data(item), link (NULL
用模板定义的单链表类 template <class Type> class List; template <class Type> class ListNode { friend class List<Type>; Type data; //结点数据 ListNode<Type> *link; //结点链接指针 public: ListNode ( ) : link (NULL) { } //构造函数 ListNode ( Type& item ) : data (item), link (NULL) { }