單鏈表基礎演算法

2021-10-09 21:02:32 字數 2806 閱讀 6691

linklist.h 標頭檔案

#ifndef linklist_h

#define linklist_h

typedef

char elemtype;

typedef

struct node //結點型別定義

node,

*linklist;

//linklist為結構指標型別

node *

locate

( linklist l,elemtype key)

;bool

inslist

(linklist l,

int i,elemtype e)

;bool

dellist

(linklist l,

int i,elemtype &e)

;int

listlength

(linklist l)

; linklist createfromhead()

; linklist createfromtail()

;void

display

(linklist l)

;void

insiisttail

(linklist l,elemtype e)

;node *

get(linklist l,

int i)

;#endif

linklist.cpp

#include

"linklist.h"

#include

#include

using

namespace std;

node *

locate

( linklist l,elemtype key)

//按值在單鏈表中查詢

return

null;}

bool

inslist

(linklist l,

int i,elemtype e)

//在鍊錶的第i個結點前插入

if(pre==

null

)return

false

;//插入位置不合法

node *s=

new node;

//分配空間

s->data = e;

s->next = pre-

>next;

pre-

>next =s;

//s放到pre後面

return

true;}

bool

dellist

(linklist l,

int i,elemtype &e)

//刪除第i個結點,第i結點的值存到e中

if(pre==

null

||pre-

>next==

null

)return

false

; node *p=pre-

>next;

//第i

e = p-

>data;

pre-

>next=p-

>next;

delete p;

return

true;}

intlistlength

(linklist l)

//計算單鏈表的長度

return c;

}linklist createfromhead()

//頭插法建立單鏈表

return l;

}linklist createfromtail()

//插法建立單鏈表

r->next =

null

;return l;

}void

display

(linklist l)

//遍歷鍊錶

}void

insiisttail

(linklist l,elemtype e)

//在鍊錶尾插入乙個元素

node *s=

new node;

s->data =e;

s->next =

null

;//指標與先放乙個空值

p->next =s;

}node *

get(linklist l,

int i)

//查詢鍊錶的第i個結點

return p;

}

main主函式

#include

#include

"linklist.h"

using

namespace std;

intmain()

// char c;

// bool re =dellist(l,5,c);

// // if(re==false) cout<<"shibai";

// else

// //

// insiisttail(l,'9');

// coutnode *p=

get(l,5)

;if(p==

null

) cout<<

"shibai "

;else cout<>data;

return0;

}

單鏈表演算法

遍歷 就是把單鏈表中的各個節點挨個拿出來,就叫遍歷 遍歷要點 不能遺漏,不能重複,追求效率 方法 從頭指標 頭節點 順著鍊錶掛接指標依次訪問鍊錶的各個節點,取出這個節點的資料,然後再往下乙個節點,知道最後乙個節點,結束返回 include include include 構建乙個鍊錶的節點 stru...

單鏈表演算法

設帶頭結點的非空單鏈表 l,設計乙個演算法刪除 l 中奇數序號 的結點,即刪除 l 中第 1 3 5 結點。應該是對的,唉,我也忘了 設計演算法刪除單鏈表奇數序號的節點 include include include define elemtype int typedef struct node l...

單鏈表的常見基礎演算法(二)

1 求單鏈表中的乙個最小值 2 單鏈表逆置 3 l為帶頭結點的單鏈表,實現從尾到頭反向輸出每個結點值 4 遞迴刪去不帶頭結點的單鏈表中所有值為x的結點 5 無序鍊錶中刪除所有值為x的結點並釋放其空間 6 帶頭結點的單鏈表中刪除所有介於給定的兩個值之間的元素 7 帶頭結點的單鏈表中刪除乙個最小值結點 ...