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 帶頭結點的單鏈表中刪除乙個最小值結點 ...