ListNode<Type>s getNode( Type& item, ListNode<Type>*next=NULL); )item和next建立一个新结点 ListNode<Type>*getLink(( return link; ∥取得结点的下一结点地址 Type get Data(return data; 3 ∥取得结点中的数据 void setLink( ListNode<Type>*next) f link=next; j /修多改结点的link指针
ListNode<Type> * getNode ( Type& item, ListNode<Type> *next = NULL ) ; //以item和next建立一个新结点 ListNode<Type> * getLink( ) { return link; } //取得结点的下一结点地址 Type getData ( ) { return data; } //取得结点中的数据 void setLink ( ListNode<Type> * next ) { link = next; } //修改结点的link指针
void setData( Type value)i data- value; 3 /修多改结点的data值 template< class Type> class list{∥链表类 private: ListNode<Type>*first, *lasts 链表的表头指针和表尾指针 public List( Type& value) last-first new ListNode<Type>( value ;3
void setData ( Type value ) { data = value; } //修改结点的data值 }; template <class Type> class List { //链表类 private: ListNode<Type> *first, *last; //链表的表头指针和表尾指针 public: List ( Type& value ) { last = first = new ListNode<Type> ( value ); }
List (i MakeEmpty (; delete first; 3 void MakeEmpty();/将链表置为空表 int Length() const;/计算链表的长度 ListNode<Type>* Find( Type value ) ∥搜索含数据 valuer的元素并成为当前元素 ListNode<Type>* Locate( int 1); 搜索第i个元素的地址并置为当前元素 Type *GetData(int 1); 取出表中第i个元素的值 int Insert( Type value, int 1); /将Vaue插在表中第i个元素后
~List ( ) { MakeEmpty ( ); delete first; } void MakeEmpty ( ); //将链表置为空表 int Length ( ) const; //计算链表的长度 ListNode<Type> * Find ( Type value ); //搜索含数据value的元素并成为当前元素 ListNode<Type> * Locate( int i ); //搜索第i 个元素的地址并置为当前元素 Type * GetData ( int i ); //取出表中第 i 个元素的值 int Insert ( Type value, int i ); //将value插在表中第i 个元素后
Type Remove( int 1) /将链表中第个元素删去 };
Type * Remove ( int i ); //将链表中第i 个元素删去 };
链表结点部分操作的实现 template <class Type> ListNode<Type>*ListNode<type>:: GetNode( Type& item, ListNode <Type> s next- NULL ) t 建立新结点,函数返回新结点地址。 ListNode<Type> newnode new ListNode<Type>( item newnode->link= next return newnode
链表结点部分操作的实现 template <class Type> ListNode<Type> *ListNode<Type> :: GetNode ( Type& item, ListNode <Type> * next = NULL ) { //建立新结点, 函数返回新结点地址。 ListNode<Type> *newnode = new ListNode<Type> ( item ); newnode->link = next; return newnode; }