單鏈表C語言實現

2021-07-30 09:07:56 字數 2010 閱讀 2879

單鏈表相比於順序表來說,優點在於頭部,中間插入比較高效,但操作較為複雜,空間利用率低,並且cpu順序錶比鍊錶快取效率高。下面來看**實現:

#include#include#includetypedef int datatype;

typedef struct node

*pnode,node;

//初始化單鏈表

void initlist(pnode* phead)

//建立乙個節點

static pnode newnode(datatype data)

return newnode;

}void pushback(pnode* phead, datatype data)

else

pcur->next = newnode(data); }}

void popback(pnode* phead)

pdel = pcur->next;

pcur->next = null;

free(pdel);

}void pushfront(pnode* phead, datatype data)

void popfront(pnode* phead)

*phead = pcur->next;

free(pcur);

}pnode find(pnode phead, datatype data)

pcur = pcur->next;

} return null;

}void insert(pnode pos, datatype data)

pnew = newnode(data);

pos->next = pnew;

pnew->next = pcur;

}void erase(pnode* phead, pnode pos)

while (pcur->next != pos)

pcur->next = pos->next;

free(pos);

}void remove(pnode* phead, datatype data)

else if ((pos = find(*phead, data)) == null)

else }

void removeall(pnode* phead, datatype data)

else

else

}if ((*phead)->data == data)

}}size_t size(pnode phead)

return count;

}pnode front(pnode phead)

else }

pnode back(pnode phead)

else

return pcur; }}

int empty(pnode phead)

else }

void printlist(pnode phead)

printf("null\n");

}void printlistfromtail2head(pnode phead)

else }

void deletenottailnode(pnode pos)

pos->data = pos->next->data;

pcur = pos->next;

pos->next = pcur->next;

free(pcur);

}void insertnotheadnode(pnode pos, datatype data)

pnew = newnode(data);

pnew->next = pos->next;

pos->next = pnew;

(pos->data) ^= (pnew->data);

(pnew->data) ^= (pos->data);

(pos->data) ^= (pnew->data);

}int main()

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...