#include #include #include #include typedef int datatype;
typedef struct slistnode
slistnode;
slistnode *__creatnewnode(datatype data);//申請空間存放新鍊錶
void slistnodeprint(slistnode **ppfirst);//列印
void slistinit(slistnode **ppfirst);//初始化
void slistpushback(slistnode **ppfirst, datatype data);//尾插
void slistpushfront(slistnode **ppfirst, datatype data);//頭插
void slistpopback(slistnode **ppfirst);//尾刪
void slistpopfront(slistnode **ppfirst);//頭刪
slistnode *slistfind(slistnode *ppfirst, datatype data);//依照資料找結點
void slistinsert(slistnode **ppfirst, slistnode *pos, datatype data);//按給定結點插入
void slisterase(slistnode **ppfirst, slistnode *pos);//給定結點刪除
void slistremove(slistnode **ppfirst, datatype data);//按值刪除
void slistremoveall(slistnode **ppfirst, datatype data);//按值刪所有
void slistdestroy(slistnode **ppfirst);//銷毀
slistnode *__creatnewnode(datatype data)//申請空間存放新鍊錶
void slistnodeprint(slistnode **ppfirst)
printf("null\n");
}void slistinit(slistnode **ppfirst)//初始化
void slistpushback(slistnode **ppfirst, datatype data)//尾插
for (pnode = *ppfirst; pnode->pnext != null; pnode = pnode->pnext)
pnode->pnext = pnewnode;
}void slistpushfront(slistnode **ppfirst, datatype data)//頭插
pnewnode->pnext = *ppfirst;
*ppfirst = pnewnode;
}void slistpopback(slistnode **ppfirst)//尾刪
for (pnode = *ppfirst; pnode->pnext->pnext != null; pnode = pnode->pnext)
pdel = pnode->pnext;
pnode->pnext = null;
free(pdel);
}void slistpopfront(slistnode **ppfirst)//頭刪
slistnode *slistfind(slistnode *ppfirst, datatype data)//依照資料找結點
return null;
}void slistinsert(slistnode **ppfirst, slistnode *pos, datatype data)//按給定結點插入
for (pnode = *ppfirst; pnode->pnext != pos; pnode = pnode->pnext)
pnode->pnext = pnewnode;
pnewnode->pnext = pos;
}void slisterase(slistnode **ppfirst, slistnode *pos)//給定結點刪除
for (pnode = *ppfirst; pnode->pnext != pos; pnode = pnode->pnext)
pnode->pnext = pos->pnext;
free(pos);
}void slistremove(slistnode **ppfirst, datatype data)//按值刪除
void slistremoveall(slistnode **ppfirst, datatype data)//按值刪所有
else
}if (pnode->data == data) }
void slistdestroy(slistnode **ppfirst)
}
資料結構 鍊錶操作 單向鍊錶
資料結構中的鍊錶基本操作,我這裡是也是為了學習記錄我自己的書寫的 過程.其中包含取鍊錶的新建,新增元素,刪除元素,取指定索引值,向元素尾部追加元素 等等 資料結構中的鍊錶基本操作,我這裡是也是為了學習記錄我自己的書寫的 過程.其中包含取鍊錶的新建,新增元素,刪除元素,取指定索引值,向元素尾部追加元素...
資料結構之鍊錶操作
線性表鏈式儲存結構定義 為了表示每個資料元素ai與其後繼資料元素ai 1之間的邏輯關係,對資料元素ai來說,除了儲存其本身資訊外,還需儲存乙個指示其直接後繼的資訊。我們把儲存資料元素的域稱為資料域,把儲存直接後繼位置的域稱為指標域。指標域中儲存的資訊稱為指標或鏈。這兩部分資訊組成資料元素ai的儲存影...
資料結構之鍊錶操作
1 基本概念 鏈式儲存結構不需要用位址連續的儲存單元來實現,而是通過 鏈 建立起資料元素之間的順序關係,因此它不要求兩個在邏輯上相鄰的資料元素在物理邏輯上也相鄰。從而,在插入和刪除元素的時候,不需要對原來的資料元素進行移動,只需要改變鍊錶節點之間的指向關係即可,從而提公升了執行時效率。2 主要儲存結...