線性表的鏈式儲存

2021-09-26 22:40:33 字數 1501 閱讀 4443

下面的**完成的演算法有:

建立空表

初始化乙個任意長度的鍊錶(尾插法)

查詢插入刪除

一開始使用的是沒有前哨結點的鍊錶來完成,也確實實現了,但是此方法表頭的插入、刪除操作需要另外討論(不爽)。故使用有前哨結點的鍊錶改了一下,**簡潔了很多。

**注意:**主函式要求你自己輸入鍊錶的各項值,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...