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