c 實現單鏈表

2021-07-04 20:44:10 字數 2109 閱讀 9569

#include

#include

using namespace std;

typedef int datatype;

struct linknode //建立乙個節點

};class slist

void swap( slist &s)

slist(const slist &s)

:_head(null)

, _tail(null)

linknode* begin = s._head;

do while (begin != s._head);

}~slist()

else}}

slist operator= ( slist& s)

public:

void destory()

//先不管_head和_tail等全部刪完將_head和_tail置為nul

linknode* begin = _head;

do while (begin != _head);

_head =

null;

_tail =

null;

}void print()

linknode *begin = _head;

do while (begin != _head);

cout<< endl;

}void pushback(const datatype& x)//尾插

else

}void popback()//尾刪

else

if (_head == _tail) //有乙個節點

else

//有多個節點

prev->_next = _head;

delete _tail;

_tail = prev;}}

void popfront()//頭刪

else

if (_head == _tail) //有乙個節點

else

}void pushfront(datatype x)//頭插

else

//有多個節點

}linknode* find(datatype x)

linknode* begin = _head;

dobegin = begin->_next;

} while (begin != _head);

cout <<

"not find "

<< x << endl;

return

null;

}bool remove(linknode * n)

if (n == _head) //n是頭指標

linknode* prev = _head;

doreturn

true;

}prev = prev->_next;

} while (prev != _head);

return

false;

}void insert(linknode * n, datatype x) //先找到節點n,在n後面插乙個節點

linknode* begin = _head;

doreturn;

}begin = begin->_next;

} while (begin != _head);

cout <<

"not find "

<< n << endl;

}void reverse() //翻轉

if (_head == _tail)

linknode* tmp = _head;

linknode* newhead = tmp, *newtail = tmp;

do while (tmp != _head);

newtail->_next = newhead;

_head = newhead;

}private:

linknode* _head;

linknode* _tail;

};void test()

void test2()

int main()

C 單鏈表實現

1 單向鍊錶 單向鍊錶 include include class cnode 節點類 class clist 鍊錶類 cnode movetrail cnode pnode 移動到尾節點 return ptmp void addnode cnode pnode 新增節點 else m nodesu...

單鏈表(C實現)

ifndef list h define list h typedef struct node node typedef struct list list initlist int insertlist list l,void data,int size node findnodebykey lis...

單鏈表C 實現

單鏈表c 實現 單鏈表c 實現 include 節點定義 templateclass listnode 鍊錶定義 template class list 建構函式 list 析構函式 void makeempty 鍊錶置空 int length const 求鍊錶長度 listnode find t...