1带附加头节点的单链表1
代码语言:javascript复制#include <stdio.h>
#include <iostream>
template <class T>
struct LinkNode{
T data;//链表节点
LinkNode<T> *link;//指针
LinkNode(LinkNode<T> *link=NULL){this.link=link;}//指针
LinkNode(const T & item,LinkNode<T> *link=NULL){data=item;this.link=link;}//指针
};
//class List:public LinearList<T>{
template <class T>
class List{
public:
List(){first=new LinkNode<T>;}
List(const T& x){
first=new LinkNode<T>(x);
}
List(List<T>& L);
~List(){
makeEmpty();
}
void makeEmpty();
int Length()const;
LinkNode<T> *getHead()const{return first;}
LinkNode<T> *Search(T x);
LinkNode<T> *Locate(int i);
bool getData(int i,T& x);
void setData(int i,T& x);
bool Insert(int i,T& x);
bool Remove(int i,T& x);
bool isEmpty()const{
return first->link==NULL?true:false;
}
bool isFull()const{
return false;
}
void sort();
void inPut();
void outPut();
List<T> &operator=(List<T> &L);
protected:
LinkNode<T> *first;//指针
};
template <class T>
List<T>::List(List<T>& L){
T value;
LinkNode<T> *scrptr=L.getHead();
LinkNode<T> *destptr=first=new LinkNode<T>;
while(scrptr->link!=NULL){
value=scrptr->link->data;
destptr->link=new LinkNode<T>(value);
destptr=destptr->link;
scrptr=scrptr->link;
}
destptr->link=NULL;
}
using namespace std;
int main(void) {
cout<<"ddddd"<<endl;
cout<<""<<endl;
//cin>>;
for(int i=0;i<10;i ){
cout<<i<<""<<endl;
}
return 0;
}