單鏈表的實現

2021-08-20 10:20:44 字數 2476 閱讀 7046

# pragma once

# include "slist.h"

# include # include # include typedef int datatype;

typedef struct slist

slist, *phead, **pphead;

//頭插

void slistpushfront(pphead head, datatype x);

//尾插

void slistpushback(pphead head, datatype x);

//頭刪

void slistpopfront(pphead head);

//尾刪

void slistpopback(pphead head);

//任意位置插

void insert(pphead head, phead pos, datatype x);

//任意位置刪

void erase(pphead head, phead pos);

//算節點數

int slistsize(phead head);

//判斷是否為空

int slistempty(phead head);

//查某個數所在節點位置

phead slistfind(phead head, datatype x);

//刪除第乙個x

void slistremove(pphead head, datatype x);

//刪除x

void slistremoveall(pphead head, datatype x);

//銷毀

void slistdestory(pphead head);

//列印

void show(slist *head);

//測試

void slisttest();

# include "slist.h" 

//生成乙個新的結點

static slist* buynewnode(datatype data)

void slistpushfront(pphead head, datatype x)//頭插

}void slistpushback(pphead head, datatype x)//尾插

}void slistpopfront(pphead head)//頭刪

phead node = (*head)->next;

free(*head);

*head = node;

}void slistpopback(pphead head)//尾刪

if ((*head)->next == null)//鍊錶只有乙個節點

while (node->next->next)//找到倒數第二個,刪掉倒數第乙個

node = node->next;

newnode = node->next;//倒數第乙個

node->next = newnode->next;//最後乙個null賦給倒數第二個

free(newnode);//釋放倒數第乙個

}void slistinsert(pphead head, phead pos, datatype x)//任意位置插

void slisterase(pphead head, phead pos)//任意位置刪

while (node->next != pos)

node = node->next;

node->next = pos->next;

free(pos);

}int slistsize(phead head)//算節點數

return size;

}int slistempty(phead head)//判斷是否為空

phead slistfind(phead head, datatype x)//查某個數所在節點位置

return null;

}void slistremove(pphead head, datatype x)//刪除第乙個x

void slistremoveall(pphead head, datatype x)//刪除x

else

node = node->next;

} if ((*head)->data == x)

slistpopfront(head);

}void slistdestory(pphead head)//銷毀

*head = null;

}//顯示

void show(phead head)

printf("null\n");

}//測試

void slisttest()

# include "slist.h"

int main()

單鏈表的實現

include includetypedef struct node 定義鍊錶 snode snode creat 建立鍊錶的函式 q next null return head int length snode head 測鍊錶的結點數 return i void display snode he...

單鏈表的實現

單鏈表夜市線性表的一種表現形式,乙個表節點由乙個資料空間和乙個指標域組成。指標域記錄下乙個結點的位址。鍊錶在插入,刪除功能中效率高。但是讀取某個結點的時候需要順序讀取。效率不如順序儲存形式。下面是一些鍊錶實現的 鍊錶.cpp 定義控制台應用程式的入口點。include stdafx.h define...

單鏈表的實現

單鏈表是資料結構中重要並且基礎的一環,學習資料結構就需要知道單鏈表有的常用操作。1 單鏈表的頭插式建立 2 單鏈表的尾插式建立 3 單鏈表的長度計算 4 單鏈表的列印輸出 5 單鏈表的釋放操作 6 單鏈表是否為空判斷 7 單鏈表在指定index插入指定元素 8 單鏈表刪除指定index的節點 9 單...