單鏈表的構造(C )

2021-08-07 07:37:54 字數 1921 閱讀 9682

單鏈表的構造,包括最常用函式,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...