linklist.h
#pragma once
typedef
struct linknode linknode;
typedef
struct linklistlinklist;
//初始化鍊錶
linklist*
init_linklist()
;//插入值
void
pushback_linklist
(linklist* list,
int value)
;//按指定位置插入
void
pushbypos_linklist
(linklist* list,
int value,
int pos)
;//按元素的值刪除
void
clearbyvalue_linklist
(linklist* list,
int value)
;//按位置刪除
void
clearbypos_linklist
(linklist* list,
int pos)
;//查詢元素
intfind_linklist
(linklist* list,
int value)
;//更改某一位置元素的值
void
update_linklist
(linklist* list,
int value,
int pos)
;//鍊錶的元素個數
intgetsize_linklist
(linklist* list)
;//列印鍊錶
void
print_linklist
(linklist* list)
;//釋放鍊錶
void
free_linklist
(linklist* list)
;
linklist.cpp
#include
"linklist.h"
#include
using
namespace std;
//初始化鍊錶
linklist*
init_linklist()
//插入值
void
pushback_linklist
(linklist* list,
int value)
//按指定位置插入
void
pushbypos_linklist
(linklist* list,
int value,
int pos)
//初始化插入的值
linknode* pnew =
new linknode;
pnew-
>data = value;
pnew-
>next =
null
;//乙個臨時變數
linknode* ptemp = list-
>head;
for(
int i =
0; i < pos; i++
) pnew-
>next = ptemp-
>next;
ptemp-
>next= pnew;
list-
>size++;}
//按元素的值刪除
void
clearbyvalue_linklist
(linklist* list,
int value)
linknode* ptemp = list-
>head-
>next;
int pos =0;
while
(ptemp!=
null
) pos++
; ptemp = ptemp-
>next;
}//按照位置進行刪除
clearbypos_linklist
(list, pos);}
//按位置刪除
void
clearbypos_linklist
(linklist* list,
int pos)
if(pos<
0|| pos>list-
>size)
linknode* ptemp = list-
>head;
for(
int i =
0; i < pos; i++
)//定義乙個快取刪除的指標
linknode* pdel = ptemp-
>next;
ptemp-
>next = pdel-
>next;
delete pdel;
list-
>size--;}
//查詢元素
intfind_linklist
(linklist* list,
int value)
linknode* ptemp = list-
>head-
>next;
int pos =0;
while
(ptemp!=
null
)else
ptemp = ptemp-
>next;
}return pos;
}//更改某一位置元素的值
void
update_linklist
(linklist* list,
int value,
int pos)
//第乙個位置
linknode* ptemp = list-
>head-
>next;
int count =1;
while
(ptemp !=
null
) ptemp = ptemp-
>next;
count++;}
}//鍊錶的元素個數
intgetsize_linklist
(linklist* list)
//列印鍊錶
void
print_linklist
(linklist* list)
linknode* ptemp = list-
>head-
>next;
while
(ptemp!=
null
) cout << endl;
}//釋放鍊錶
void
free_linklist
(linklist* list)
delete list;
}int
main()
print_linklist
(list)
;//按指定位置插入
pushbypos_linklist
(list,10,
3);print_linklist
(list)
;//按元素的值刪除
clearbyvalue_linklist
(list,7)
;print_linklist
(list)
;//按位置刪除
clearbypos_linklist
(list,3)
;//列印
print_linklist
(list)
;//查詢元素位置
int pos=
find_linklist
(list,3)
; cout << pos << endl;
//更改某一位置元素的值
update_linklist
(list,5,
1);print_linklist
(list)
;int size =
getsize_linklist
(list)
; cout << size << endl;
free_linklist
(list)
;//print_linklist(list);
return0;
}
資料結構單鏈表
初學資料結構,貼段自己編寫的單鏈表程式,希望自己能夠一直以強大的學習熱情持續下去!自勉!2012年3月30日 於大連 include using namespace std typedef struct node linklist,node linklist makelist int n void ...
資料結構 單鏈表
今天浪費了好多時間,也許是心裡想著明天的考試吧 可自己也知道這次的考試,自己畢竟過不了了,只好等到今年11月份,想想那時自己已經大三了 還有那麼多時間嗎!很懊惱今天不知怎麼回事,感嘆環境真的可以影響乙個人,真的可以 把今天的學習筆記寫下來,沒有進行好好的整理,這回單鏈表的功能較多,操作比較散,最後乙...
資料結構 單鏈表
實現乙個單鏈表 1 查詢 查詢第index個節點 查詢指定的元素 2 插入 將指定的元素插入到第index個節點上 3 刪除 將第index個節點刪除 規律 刪除和新增元素前務必儲存兩個元素的位址引用資訊 public class mylinkedlist 記錄鍊錶結構的頭結點位址引用 privat...