#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...