資料結構專題 線性表之單鏈表

2021-08-08 11:06:34 字數 2080 閱讀 4626

對比了好幾本書,比較少涉及單鏈表的賦值,為了親自跑出其他功能,花了不少時間,畢竟是打基礎嘛,相信以後會越來熟練(你為什麼那麼熟練,明明是我先~)話不多說,下面是**及實驗結果。

#include 

#include

#define elementtype int

#define maxsize 1000

#define error -1

/*線性表-順序表-結構體定義*/

typedef

struct lnode *ptrtolnode;

struct lnode ;

struct lnode l;

ptrtolnode ptrl = &l;

/*初始化-賦值*/

ptrtolnode creatnewlist(ptrtolnode ptrl , int data)

else

return ptrl;

}/*遍歷-列印*/

int shownewlist(ptrtolnode ptrl )

printf("\n");

return1;}

/*遍歷-求表長*/

int length(ptrtolnode ptrl)

return j;

}/* 按序查詢 */

/* 查詢第k個數,並返回其值的指標 */

ptrtolnode findkth( int k, ptrtolnode ptrl )

if ( i == k ) return p; /* 如果找到,返回指標 */

else

return null;

}/* 按值查詢 */

/* 查詢x,並返回其值位置 */

int find( int x, ptrtolnode ptrl )

return j;

}/* 插入 */

/* 必須知道前乙個節點才能插入 */

ptrtolnode insert( ptrtolnode ptrl, elementtype x, int i )

p = findkth(i-1,ptrl);

if(p == null)

else

}/* 刪除 */

/* 必須知道前乙個節點才能刪除 */

ptrtolnode delete( ptrtolnode ptrl, int i)

p = findkth(i-1,ptrl);

if(p == null)

else

if(p->next == null)

else

}void destorylist( ptrtolnode ptrl )

}int main()

l = length(ptrl);

printf("length = %d \n",l);

shownewlist(ptrl);

printf("find kth number, input k :");

scanf("%d",&k);

find1 = findkth( k, ptrl );

printf("kth = %d\n",find1->data);

printf("find a number, input number :");

scanf("%d",&x);

j = find( x, ptrl );

printf("%d is in the %d th position\n", x,j);

printf("insert m in m ,input m m :");

scanf("%d %d",&m,&m);

ptrl = insert( ptrl, m, m );

shownewlist(ptrl);

printf("delete d th number, input d :");

scanf("%d",&d);

ptrl = delete( ptrl, d);

shownewlist(ptrl);

destorylist(ptrl);

return

0;}

資料結構 線性表之單鏈表

線性表 亦作順序表 是最基本 最簡單 也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。線性表有兩種儲存結構 順序儲存結構,即儲存單元在一段連續的位址上儲存,常見的陣列就是順序儲存結構的線性表 鏈式儲存結構,即儲存單元...

資料結構專題 線性表之單鏈表及其Java實現

儘管我們在遇到頻繁訪問列表中元素時,arraylist是乙個很好的選擇 但當我們需要頻繁新增 刪除列表中元素,尤其是在表的前端進行增刪操作時,arraylist就不是乙個特別好的選擇了。為了解決新增 刪除元素時需要大量其它元素移動的問題,我們今天一起來接觸在記憶體中鏈式儲存的線性表 也稱為鍊錶 鏈式...

C資料結構 線性表之單鏈表

單鏈表的設計之初,筆者在考慮乙個首要的問題,就是單鏈表的節點是在插入的函式內部建立,還是在函式外部建立。考慮到使用者在插入的時候,變數生命週期的不確定性以及容易造成記憶體洩漏等問題,綜合考慮之下使用了內部建立節點的方式。筆者設計的單鏈表中包含了單鏈表的反轉和合併等有趣的操作,其中的奧妙如果讀者有興趣...