單鏈表的構造,包括最常用函式,setdata(),insert(),remove(),getdata(),search()。
**如下:
#include #include using namespace std;
templatestruct linknode
linknode(const t& item, linknode*ptr=null)
};templateclass list
list(const t& x)
list(list&l);
~list()
void makeempty();
int length()const;
linknode*gethead()const
linknode*search(t x);
linknode*locate(int i);
bool getdata(int i, t &x)const;
void setdata(int i,t &x);
bool insert(int i,t &x);
bool remove(int i, t &x);
bool isempty()const
bool isfull()const
void sort();
void inputfront(t endtag);
void inputrear(t endtag);
void output();
list& operator=(list&l);
private:
linknode*first;
};templatevoid list::makeempty()
}templatelinknode*list::search(t x)
return p;//無論是否找到都返回p,若找到則返回p,沒有則返回空指標
}templatelinknode*list::locate(int i)
return p;//無論是否為空指標,返回的都是到達i位置的指標,如果沒有到達就是已經到結尾了
}templatebool list::getdata(int i, t& x)const
}templatevoid list::setdata(int i, t& x)
}templatebool list::insert(int i, t &x)
}templatebool list::remove(int i, t& x)
templatevoid list::output()
}templatelist& list::operator=(list& l)
return *this;
//用上面這種方法可以更好地實現賦值
// linknode*pre=l.gethead();
// if(pre==null)
// linknode*p=first=new linknode;
// first->link=p;
// int sum=l.length();
// t &x;
// int i=1;
// while(i<=sum)
// return *this;
}templateint list::length()const
return sum;
}//前插法建立單鏈表
templatevoid list::inputfront(t endtag)
}//後插法建立單鏈表
templatevoid list::inputrear(t endtag)
}//複製建構函式
templatelist::list(list&l)
}
python 構造單鏈表
鍊錶 linked list 是由一組被稱為結點的資料元素組成的資料結構,每個結點都包含結點本身的資訊和指向下乙個結點的位址。由於每個結點都包含了可以鏈結起來的位址資訊,所以用乙個變數就能夠訪問整個結點序列。也就是說,結點包含兩部分資訊 一部分用於儲存資料元素的值,稱為資訊域 另一部分用於儲存下乙個...
不帶頭結點的單鏈表構造
不帶頭結點的單鏈表的構造 頭插法 template class t linklist linklist t a,int n,string s 尾插法 template class t linklist linklist t a,int n,int w,string s include using n...
C 簡單的單鏈表
include using namespace std class node node node int num int node getnum void node setnextnode node node node node getnextnode class nodearray void no...