/*基於結構體陣列的鍊錶實現*//* 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就是合法的表示式。那麼,這有什麼意義呢?這樣的意義就...