基於結構體陣列的鍊錶實現

2021-05-25 00:50:03 字數 1641 閱讀 6656

/*基於結構體陣列的鍊錶實現*/

/* made by winlin 2011.4.11

*initialize(  )初始化儲存池

*insertnode(  )插入乙個節點

*deletenode(  )刪除乙個節點

*display_member(  )顯示儲存池裡面的資料

*display_info(  )顯示儲存池當前的資訊

*isempty(  )儲存池是否已滿

*/#include 

#include 

typedef

intelementtype; 

const

intnull_value=-1;   

//不存在的位置

//節點宣告

typedef

struct

node 

node; 

//儲存池

const

intnumnodes=2048; 

node  nodelist[numnodes]; 

intfreelist;       

//其值為空閒節點鏈的在儲存池中的起始位置

intfirst;   

//其值為第乙個節點在儲存池中的位置

intemptynodes; 

void

initialize( ) 

nodelist[ numnodes-1 ].next=null_value; 

freelist=0; 

first=null_value; 

emptynodes=numnodes; 

} bool

isempty(  ) 

intinsertnode(

const

elementtype& nodedata) 

temp=freelist; 

freelist=nodelist[ freelist ].next;   //從空閒鍊錶中剔除開始的那個節點

if( first==null_value ) 

else

--emptynodes; 

return

temp; 

} void

deletenode(

const

elementtype& nodedata ) 

inttemp_cur=first; 

inttemp_pre=first; 

while

( temp_cur !=null_value) 

else

if( nodelist[ temp_cur].data==nodedata ) 

temp_pre=temp_cur; 

temp_cur=nodelist[ temp_cur].next; 

} ++emptynodes; 

} void

display_member( ) 

inttemp=first; 

while

(temp!=null_value) 

std::cout<<"/n"

; } 

void

display_info(  ) 

intmain(  ) 

1 3 1線性鍊錶之靜態(結構體陣列)鍊錶

結構表示 define maxsize 1000 鍊錶的最大長度 typedef struct component slinklist maxsize 在靜態鍊錶中查詢第 1 個值為e的元素,若找到則返回它在l中的位序,否則返回0 int locateelem sl slinklist s,elem...

基於鍊錶指標結構體的使用方法

鍊錶是一種常見的重要的資料結構。是動態地進行儲存分配的一種結構。鍊錶有乙個 頭指標 head 變數,該變數存放乙個位址,該位址指向乙個元素。鍊錶中的每乙個元素稱為 結點 這個結點包括 使用者需要的實際資料和下乙個結點的位址。下面是學完了鍊錶後,對鍊錶的理解與 的編寫,以及構思思路,首先是鍊錶的結點,...

結構體鍊錶小結

引用自身的結構體,乙個結構體中有乙個或多個成員的基型別就是本結構體型別時,說明這個結構體可以引用自己,所以稱作引用自身的結構體。例如下面的結構體 struct link a p是乙個可以指向struct link型別變數的指標成員,這樣,a.p a就是合法的表示式。那麼,這有什麼意義呢?這樣的意義就...