C 單鏈表基本操作

2021-08-21 04:19:44 字數 2622 閱讀 4172

#include using namespace std;

struct node

;class list

//建立帶頭結點的鍊錶,head->next = null;表示鍊錶為空,只有乙個頭結點

void creatlist1(int n); //頭插入法建立鍊錶

void creatlist2(int n); //尾插入法建立鍊錶

void insert(int i, int e); //按位置插入元素:在i位置處插入元素為e的節點

void inserlist(int adata, int bdata); //按節點插入節點:在節點a之前插入節點b

void delete(int i); //按位置刪除:刪除i處的節點

void deletek(int k);

void deletelist(int adata); //按資料刪除:刪除資料為adata的幾點

int getdata(int i); //取得i處的元素值

int getdatak(int k); //取得倒數第k個的元素值

int changedata(int i); //修改i處的元素值

int changedatak(int k); //修改倒數第k個的元素值

int search(int obj); //尋找鍊錶中有無與obj匹配的元素:第幾個元素為obj

int listlength(); //獲得表的長度

node * reverse(); //鍊錶倒置

void outputlist();

node * gethead() //head->next;表示指向第乙個節點的指標,返回第乙個節點

};//輸出鍊錶

void list::outputlist()

cout << endl;

}//建立鍊錶:頭插法

void list::creatlist1(int n)

}//尾插入法建立鍊錶

void list::creatlist2(int n)

p->next = null;

}//插入:在i位置處插入元素為e的節點

void list::insert(int i, int e)

if (!temp || j > i - 1)

else

}//插入:在節點a前面插入節點b,可以新建鍊錶

void list::inserlist(int adata, int bdata)

else if (p->data == adata)

else

if (p->data == adata)

else

}}//按位置刪除:刪除i處的節點

void list::delete(int i)

if (!temp || j > i - 1)

else

}//刪除倒數第k個節點

void list::deletek(int k)

while (p->next != null)

node *s;

s = q->next;

q->next = s->next;

delete s;

}//刪除節點a

void list::deletelist(int adata)

if (p->data == adata)

else

if (p->data == adata)

}}//取得i處的元素值

int list::getdata(int i)

if (!temp || j > i - 1)

}//取得倒數第k個的元素值

int list::getdatak(int k)

while (p->next != null)

cout << "倒數第" << k << "個元素為:" << q->data << "\n";

return q->data;

}//修改i處的元素值

int list::changedata(int i)

if (!temp || j > i - 1)

else

}//修改倒數第k個的元素值

int list::changedatak(int k)

while (p->next != null)

q->data = x;

return q->data;

}//尋找鍊錶中有無與obj匹配的元素:第幾個元素為obj

int list::search(int obj)

if (temp == null)

else

}//獲得表的長度

int list::listlength()

cout << "該鍊錶的長度為:" << j - 1 << endl;

return j;

}//鍊錶倒置

node * list::reverse()

return head;

}int main()

c 單鏈表基本操作

下午沒事,看資料結構。想到自畢業以後,都沒有寫過這些東西了。寫個鍊錶基本操作,還沒完全測試。includeusing namespace std node 節點 struct node int data node p 單鏈表 class link 通過陣列夠造 link int arr,int le...

C 單鏈表基本操作

鍊錶一直是面試的高頻題,今天先總結一下單鏈表的使用,下節再總結雙向鍊錶的。本文主要有單鏈表的建立 插入 刪除節點等。1 概念 單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鍊錶中的資料是以結點來表示的,每個結點的構成 元素 指標,元素就是儲存資料的儲存單元,指標就是...

單鏈表基本操作

include include include include includeusing namespace std typedef struct node node,plinklist plinklist createfromhead node pstnode node malloc sizeof...