下面的**完成的演算法有:
建立空表
初始化乙個任意長度的鍊錶(尾插法)
查詢插入刪除
一開始使用的是沒有前哨結點的鍊錶來完成,也確實實現了,但是此方法表頭的插入、刪除操作需要另外討論(不爽)。故使用有前哨結點的鍊錶改了一下,**簡潔了很多。
**注意:**主函式要求你自己輸入鍊錶的各項值,9999結束輸入
#includetypedef int elementtype ;
using namespace std;
typedef struct lnode* list;
/*請輸入鍊錶元素,9999結束輸入*/
struct lnode ;
list init()
list create()
return head;
}int length( list ptrl )
return i;
}list findth( list ptrl , int k ) //尋找鍊錶第k處的值
if( p == null )
return null;
else
return p; }
list find ( list ptrl , elementtype x )
if( p == null )
return null;
else
return p;
}list insert ( list ptrl , int i , elementtype x )//在鍊錶的第i處插入乙個結點
// // if( i==1 && ptrl->next!=null)
p = findth( ptrl, i-1 );
if( p==null ) }
list delete ( list ptrl, int i ) //刪除鍊錶第i處的結點
else
// free( s );
// return ptrl;
// }
p = findth( ptrl, i-1 );
if( p==null ||p->next==null )
} void print(list ptrl) }
}int main()
{ list list1 = init();
list list2 = create();
print(list1);
print(list2);
insert( list1, 1, 11 );
insert( list1, 2, 22 );
insert( list1, 3, 33 );
insert( list1, 4, 44 );
coutdata執行結果:
線性表的鏈式儲存
此方法雖然簡單,但是真寫起來太複雜了。線性表的鏈式儲存 include include struct lnode 線性表的初始化 void init l lnode l 線性表的後插建立 void create l1 lnode l n next null 線性表的後插建立 void create ...
線性表的鏈式儲存
引言 一 單鏈表 相較於順序儲存用連續的儲存單元儲存,單鏈表採用鏈式儲存結構,用一組位址任意的儲存單元儲存資料元素。特點 1 儲存單元可以是不連續的,即邏輯結構與物理結構可以不相同 2 元素用結點儲存,每個結點由元素值和下乙個元素的位址構成 3 單鏈表是由每個結點的指標域按照邏輯次序相互連線而成的。...
線性表的鏈式儲存
include include include typedef int elemtype typedef struct nodenode,nodeptr 鍊錶節點 typedef struct listlist,listptr 鍊錶,頭結點為0位置 listptr initlist 初始化鍊錶 vo...