c 實現單 雙鏈表

2021-08-10 06:41:40 字數 2051 閱讀 4844

單鏈表

#include

using namespace std;

typedef int datatype;

struct slistnode //在c++中結構體也就是乙個類

};typedef slistnode node;

class slist

slist(const slist& s)

:_head(null)

,_tail(null)

}slist& operator=(const slist& s)

}/*node* buynode(datatype x)

*/~slist()

_head = _tail =

null;

}void pushback(datatype x)

else

}void popback()

cur->_next =

null;

free(cur->_next);

}void pushfront(datatype x)

void popfront()

void preinsert(node* pos, datatype x)// 插入乙個節點在pos的前面

cur->_next=

new node(x);

cur->_next->_next = pos;

}// 插入乙個節點在pos的後面

void insert(node* pos, datatype x)

void erase(node* pos)

void print()

cout << endl;

}node* findpos(datatype x)

cur = cur->_next;

}return

null;

}private:

node* _head;

node* _tail;

};void testslist()

雙鏈表

#pragma once

#include

#include

using namespace std;

typedef int datatype;

struct listnode

};typedef listnode node;

class list

list(const list

& l)

}list

& operator=(const list

& l)

}~list()

_head = _tail =

null;

}void pushback(datatype x)//尾插

else

}void popback()//尾刪

void pushfront(datatype x)//頭插

void popfront()//頭刪

// 在pos的前面插入乙個

void insert(node* pos, datatype x)

else

}void erase(node* pos)

else

if (prev ==

null)

else

if (next==

null)

else

}node* find(datatype x)

cur = cur->_next;

}cout <<

"no find"

<< endl;

return

0; }

void reverse()

swap(_head, _tail);

}void print()

cout << endl;

}private:

node* _head;

node* _tail;

};void testlist()

golang實現單 雙鏈表

go實現乙個單鏈表 儲存內容為int 該鍊錶提供以下方法 1 建立鍊錶 2 在鍊錶頭部插入乙個節點 3 返回鍊錶元素個數 4 列印鍊錶所有的元素 type node struct type list struct func newlist list func this list add data i...

java實現單鏈表 雙鏈表 環鏈表

鍊錶是程式裡重要的資料結構,在程式世界運用很廣泛,眾所周知的當屬於jdk裡的linklist了。鍊錶的優點,是相對於陣列來說,擴容是非常快的,如果是陣列擴容,陣列是新申請乙個更大空間的陣列,然後把老陣列內的資料複製到新陣列 而鍊錶就不必申請新鍊錶,直接再分配乙個元素的儲存空間即可。鍊錶的缺點,相對於...

單鏈表 雙鏈表

實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k個插入的數後面的數 3 在第k個插入的數後插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊錶的第k個數。例如操作過程中一共插入了n個數,則按照插入的...