線性表之單向鍊錶

2021-09-02 17:47:26 字數 2287 閱讀 7463

#pragma once

//單向 + 不迴圈 + 不帶頭

typedef int sldatetype;

typedef struct slistnode

slistnode;

typedef struct slist

slist;

//初始化

void slistinit(slist* list);

//銷毀

void slistdestroy(slist* list);

//頭插

void slistpushfront(slist* list, sldatetype date);

//頭刪

void slistpopfront(slist* list);

//尾插

void slistpushback(slist* list, sldatetype date);

//尾刪

void slistpopback(slist* list);

//查詢

slistnode* slistfind(slist* list, sldatetype date);

//在 pos 這個結點後面插入新結點

void slistinsertafter(slistnode* pos, sldatetype date);

//刪除 pos 這個結點後面的那個結點(pos 不是最後乙個結點)

void slisteraseafter(slistnode* pos);

//刪除第乙個遇到的date結點

void slistremove(slist* list, sldatetype date);

//列印

void slistprint(slist* list);

#include"slist.h"

#include#include#include//初始化

void slistinit(slist* list)

//銷毀

void slistdestroy(slist* list)

list->first = null;

}//開闢新結點

slistnode* buynewnode(sldatetype date)

//頭插

void slistpushfront(slist* list, sldatetype date)

//頭刪

void slistpopfront(slist* list)

//尾插

void slistpushback(slist* list, sldatetype date)

slistnode* last = list->first;

while (last->next != null)

last->next = buynewnode(date);

}//尾刪

void slistpopback(slist* list)

//如果結點數 >= 2

slistnode* cur = list->first;

slistnode* tmp = cur->next;

for ( ; tmp->next != null; cur = cur->next)

{} free(tmp);

cur->next = null;

}//查詢

slistnode* slistfind(slist* list, sldatetype date)

tmp = tmp->next;

} return null;

}//在 pos 這個結點後面插入新結點

void slistinsertafter(slistnode* pos, sldatetype date)

//刪除 pos 這個結點後面的那個結點(pos 不是最後乙個結點)

void slisteraseafter(slistnode* pos)

//刪除第乙個遇到的date結點

void slistremove(slist* list, sldatetype date)

//找完整個鍊錶仍然沒有找到

if (cur == null)

//如果第乙個就是

if (tmp == null)

tmp->next = cur->next;

free(cur);

}//列印

void slistprint(slist* list)

printf("null\n");

}

線性表 線性表 抽象鍊錶類 單向鍊錶講解

線性表兩種分類 順序表,鍊錶 線性表 記錄 資料元素 資料項 順序表 只有唯一乙個節點只存在乙個後繼,不存在前驅,只有唯一乙個節點存在前驅,不存在後繼,中間所有的節點都存在位移的前驅和後繼 順序表的優點 可以隨機訪問,方便訪問,儲存密度大,空間利用率高 順序表缺點 難以實現插入資料的操作,而且空間一...

線性表3 單向迴圈鍊錶

下面介紹鏈式儲存結構的單向迴圈鍊錶。迴圈鍊錶是另一種形式的鏈式儲存結構。其特點是表中最後乙個結點的指標域指向頭結點,整個鍊錶形成乙個環。由此,從表中任一結點出發均可找到表中其他結點。描述 資料域 指標域 typedef int datatype typedef struct node slinkli...

線性表之鍊錶

鏈式的線性表適用於經常進行刪除,插入操作的工作,如 訂票系統。鍊錶是用乙個乙個的節點連線起來的表,在物理上不是連續的,在邏輯上是連續的。通過節點間的指標指向來表示節點間的關係。所以在進行鍊錶操作之前,要先定義乙個節點結構。節點結構包含兩個東西 資料域,指標域。資料域就是用來存放資料的,指標域是用來表...