單鏈表 c語言實現

2021-08-02 09:02:43 字數 1948 閱讀 3068

list.h

#pragma once

#include #include #include typedef int datatype;

typedef struct listnode

listnode;

void printlist(listnode *plist);//從頭到尾列印

void pushback(listnode **pplist, datatype x);//尾插

void popback(listnode **pplist);//尾刪

void pushfront(listnode **pplist, datatype x);//頭插

void popfront(listnode **pplist);//頭刪

listnode *find(listnode *plist, datatype x);//查詢

void insert(listnode **pplist, listnode *pos, datatype x);//指定位置前插入

void erase(listnode **pplist, listnode *pos);//刪除指定位置

list.c

#define _crt_secure_no_warnings 1

#include "list.h"

listnode *creatnode(datatype x)//建立節點

tmp->data = x;

tmp->next = null;

return tmp;

}void printlist(listnode *plist)//列印

printf("null\n");

return;

}void pushback(listnode **pplist, datatype x)//尾插

else if((*pplist)->next == null)

else

tmp->next = creatnode(x); }}

void popback(listnode **pplist)//尾刪

else if((*pplist)->next == null)

else

free(tmp);

pre->next = null; }}

void pushfront(listnode **pplist, datatype x)//頭插

else }

void popfront(listnode **pplist)//頭刪

else if((*pplist)->next == null)

else }

listnode *find(listnode *plist, datatype x)//查詢

plist = plist->next;

} return plist;

}void insert(listnode **pplist, listnode *pos, datatype x)//指定位置前插入

else

} }void erase(listnode **pplist, listnode *pos)//刪除指定位置

else

tmp->next = pos->next;

free(pos);

}}

test.c

#include "list.h"

void test1()//測試pushback/popback

void test2()//測試pushfront/popfront

void test3()//測試insert/erase

c語言實現單鏈表

一 使用簡介 使用c語言實現了單鏈表的基本操作,共有四個檔案,兩個標頭檔案是常用的,後兩個分別是主函式,和對鍊錶的基本操作函式,倒入時候,須將四個檔案放在同乙個目錄下。二 心得 在書寫過程中,主要錯誤集中在指標的使用上,通過此次程式設計,對於指標的認識更加深刻,頭結點的存在,更大意義上是為了簡化指標...

C語言實現單鏈表

單鏈表可以說是基礎,有利於對指標的使用 結點 typedef int datatype typedef struct slistnode slistnode 實現的函式的宣告如下 slistnode buynode datatype x void printslist slistnode phead...

C語言實現單鏈表

dev c 編譯執行通過,實現了單鏈表的構建,清空,插入,刪除和查詢。include include include include include define ok 1 define error 0 typedef int elemtype typedef struct node node ty...