簡單連結串列——尾插法
眼看這2020年就要過去了,部落格才寫了30篇,複習下資料結構順便水一下部落格。
我比較喜歡先自己想,想完再寫寫,不會了再參考網上的資料。
寫這個連結串列時候,刪除節點老是不對,照著寫了幾遍就對了,算是背下來的吧,好像還真是沒有完全理解。
反正以後用的時候還是要去仔細研究,現在就寫個能用的,下面該看佇列了,要不然卡在這裡就像英語記單詞abandon一樣。溜了溜了,水篇部落格,希望不是製造了個網路垃圾。。。
#include <stdio.h>
#include<malloc.h>
#define LEN sizeof(struct List)
#if 1 //1開啟 0關閉 VS2019開啟 codeblocks關閉
#define scanf scanf_s
#endif
//定義節點
struct List
{
int num;
struct List* next;
};
//建立一個連結串列,長度為30,從0到29賦值,初始化連結串列
struct List* creat()
{
struct List* head, * p1, * p2;
p1 = p2 = (struct List*)malloc(LEN);
head = p1;
for (int a = 0; a < 30; a++)
{
p1->num = a;
p2->next = p1;
p2 = p1;
p1 = (struct List*)malloc(LEN);
}
p2->next = NULL;
return head;
}
//尾插法加一個節點
struct List* addList(List* head,int num)
{
struct List* p;
p = head;
while(p->next!=NULL)
{
p = p->next;
}
p->next = (struct List*)malloc(LEN);
p->next->num = num;
p->next->next = NULL;
return head;
}
//按儲存的資料刪除一個節點
struct List* deleteList(List* head, int num)
{
struct List* p1,*p2;
p1 = p2 = head;
while (p1->next)
{
p2 = p1;
p1 = p1->next;
if (p1->num==num)
{
p2->next = p1->next;
break;
}
}
return head;
}
//遍歷連結串列
void print(struct List* head)
{
struct List* p;
p = head;
while (p != NULL)
{
printf("%d\n", p->num);
p = p->next;
}
}
int main()
{
struct List* p; //初始化一個連結串列
p = creat(); //呼叫建立函式來建立一個連結串列
print(p);
printf("\n");
p = addList(p, 10); //從尾巴新增一個10
print(p);
printf("\n");
p = deleteList(p, 5); //刪除元素為5的節點
print(p);
}
相關文章
- 建立單連結串列(尾插法)
- Java解釋單連結串列中的頭插法以及尾插法Java
- 不帶頭結點的單連結串列的建立(頭插法和尾插法)
- HashMap 連結串列插入方式 → 頭插為何改成尾插 ?HashMap
- 簡單的單向連結串列
- 連結串列 - 單向連結串列
- 連結串列基礎2(超簡單)--單連結串列的插入和刪除
- ④從尾到頭列印連結串列
- 連結串列-單連結串列實現
- leetcode:21. 合併兩個有序連結串列(連結串列,簡單)LeetCode
- 單連結串列
- 雙向連結串列 尾節點插入
- 資料結構-單連結串列、雙連結串列資料結構
- 反轉連結串列(C++簡單區)C++
- 單雙連結串列
- 單連結串列建立連結串列出現問題
- 資料結構與演算法——連結串列 Linked List(單連結串列、雙向連結串列、單向環形連結串列-Josephu 問題)資料結構演算法
- JZ-003-從尾到頭列印連結串列
- 單連結串列的建立
- 棧_單向連結串列
- 12.19單向連結串列
- 單連結串列成環
- 簡單介紹python中的單向連結串列實現Python
- 線性表中的單向連結串列的簡單操作
- 【leetcode 簡單】第三十七題 相交連結串列LeetCode
- 55-將單連結串列原地逆置(有頭結點的單連結串列)
- 資料結構--陣列、單向連結串列、雙向連結串列資料結構陣列
- 佇列_單向連結串列佇列
- 單向迴圈連結串列
- 單連結串列學習(一)
- 10單向連結串列(slist)
- Python實現單連結串列Python
- 單向連結串列的建立
- 【資料結構】連結串列(單連結串列實現+詳解+原碼)資料結構
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構
- 資料結構之連結串列篇(單連結串列的常見操作)資料結構
- 翻轉連結串列常用寫法
- 結點插入到單連結串列中