資料結構 單鏈表

2021-10-10 18:44:50 字數 4208 閱讀 3550

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