4.2.1结点类的定义和实现 DS data next 计数据成员:数据域daa(公有,应用问题要使用) 算机学 指针域next(私有) private 院 ListNode<T>*next;/该指针是结点类的对象 信成员函数: 自 初始化构造一个结点对象(头结点) 教研室 新建立一个结点(指向下一个结点的指针)
4.2.1 结点类的定义和实现 数据成员:数据域data(公有,应用问题要使用) 指针域next(私有) private: ListNode<T> *next; //该指针是结点类的对象 成员函数: 初始化构造一个结点对象(头结点) 新建立一个结点,(指向下一个结点的指针) 计 算 机 学 院 信 息 教 研 室 DS data next
4.2.1结点类的定义和实现 ListNode h DS #include < h> #include<stdio.h> 算 template< class t> class lin list:前视定义,否 则,无法定义友元 机 template<class T>class ListNode friend class lin list<T>:∥定义友元 自 private 教 Listnode<T>*next:∥/指向下一个结点的指针 研 public 室
4.2.1 结点类的定义和实现 #include<iostream.h> #include<stdio.h> template<class T>class LinList; //前视定义,否 则,无法定义友元 template<class T>class ListNode { friend class LinList<T>; //定义友元 private: ListNode<T> *next; //指向下一个结点的指针 public: … } 计 算 机 学 院 信 息 教 研 室 DS ListNode.h
4.2.1结点类的定义和实现 ListNode h DS public 计算机学院信息教研室 Tdata;/定义公有成员便于访间 NU时mNk ListNode listNode<t> ptrNext NU ∥构造函数,用于构造头结点 Listnode(O{};∥析构函数 t]
4.2.1 结点类的定义和实现 { … public: T data; //定义公有成员便于访问 ListNode(ListNode<T> *ptrNext = NULL); //构造函数,用于构造头结点 ListNode(const T& item,ListNode<T> *ptrNext = NULL); //构造函数,非头结点 ~ListNode(){}; //析构函数 } 计 算 机 学 院 信 息 教 研 室 DS ListNode.h
4.2.1结点类的定义和实现 ListNode. cpp Ds template<class T ListNode <T>. ListNode (ListNode<T 计算机学院 [3 ptrNext): next(ptrNexty 学 template< class t> ListNode<T>: ListNode(const T &item, istNode<t> xptrNext) 自 教研 data item next ptrNext 室
4.2.1 结点类的定义和实现 template<class T> ListNode<T>::ListNode(ListNode<T> *ptrNext):next(ptrNext) { } template<class T> ListNode<T>::ListNode(const T &item,ListNode<T> *ptrNext) { data = item; next = ptrNext; } 计 算 机 学 院 信 息 教 研 室 DS ListNode.cpp
422单链表类的定义和实现 DS head a0 an/ 计数据成员(1)头指针(2)元素个数(3)当 /前结点指针 算 学成员函数:3组 院(1)构造函数和析构函数 点(2)表操作的成员函数(任何对单链表结 教点的操作都要从头结点开始) 研(3)遍历函数(为什么要提出?) 室
4.2.2 单链表类的定义和实现 数据成员(1)头指针(2)元素个数(3)当 前结点指针 成员函数:3组 (1)构造函数和析构函数 (2)表操作的成员函数(任何对单链表结 点的操作都要从头结点开始) (3)遍历函数(为什么要提出?) 计 算 机 学 院 信 息 教 研 室 DS a0 a1 … an ^ head