單向鍊錶的基本操作

2021-07-27 16:30:01 字數 2145 閱讀 3958

這篇文章也是為了複習下,同時為字典樹做下準備

鍊錶操作包括建立,刪除,增加,排序,輸出等操作,後續將**貼上

單向鍊錶:      head ---->[null] 

空鍊錶:head---->[p1]---->[p2]...---->[pn]---->[null]

p1->next  p2->next   pn->next

#include #include int n = 0; //節點個數

typedef struct db

;#define len sizeof(struct db)

//返回值是煉表表頭

struct db *list_create()

else

while (0 != p1->num)

else

p2 = p1; //p1將要生成新的位址

p1 = (struct db*) malloc(len);

//還要判斷有沒有申請記憶體成功

if (null == p1)

printf("plz input num in node %d\n", n + 1);

scanf("%d %d", &p1->num, &p1->score);

} //單向鍊錶的結尾就是指向null

p2->next = null;

free(p1);

p1 = null;

return head;

}void list_print(struct db *node)

p1 = node->next;

printf("%d %d\n", node->num, node->score);

while (null != p1)

return;

}int list_search(struct db* node, int num)

if (num == node->num) count += 1;

p1 = node->next;

//printf("%d %d\n",node->num,node->score);

while (null != p1)

return count;

}struct db* list_inser(struct db *pdb, int index, int num, int score)

if ((null == pdb) && (0 == index))

p2->num = num;

p2->score = score;

p2->next = null;

pdb = p2;

n += 1;

return pdb;

} while ((null != p1) && (count != index))

p2 = (struct db*) malloc(len);

if (null == p2)

p2->num = num;

p2->score = score;

p3 = p1->next;

p1->next = p2;

p2->next = p3;

n += 1;

return pdb;

}struct db* list_remove(struct db *pdb, int index)

p1 = pdb;

//一開始沒有考慮要刪頭節點的情況,這個要單獨考慮的,否則會core

if(1 == index)

while((null != p1) && (count != index))

p2->next = p1->next;

free(p1);

p1 = null;

n-=1;

return pdb;

}struct db* list_convert(struct db* pdb)

return p3;

}//按照score排序

struct db* list_sort(struct db* pdb)

else

}} } }

//head->next儲存的是第二個節點的位址;任意乙個節點p的位址,只能通過它前乙個節點的next來求得

int main()

單向鍊錶的基本操作

pragma once include include include include typedef char linktype typedef struct linknode linknode void linklistinit linknode head 初始化鍊錶 linknode link...

c 實現單向鍊錶基本操作

最近又開始了資料結構的學習,去年下半年也學過一段時間,沒能堅持下去,希望這次能堅持久一點,把基礎的資料結構都能掌握 這是我最近對單向鍊錶的一些學習情況 我先是聽mooc的浙大資料結構的課程,在頭腦裡建立起資料結構的形象和特徵,這種方法不一定很好,只是目前我對資料結構的一種學習方法 在看完一種資料結構...

C語言 單向鍊錶的基本操作

define crt secure no warnings include include include typedef struct node node 建立頭節點和鍊錶 鍊錶的頭結點位址由函式值返回 node slistcreat return head 鍊錶的遍歷 int slistprin...