這篇文章也是為了複習下,同時為字典樹做下準備
鍊錶操作包括建立,刪除,增加,排序,輸出等操作,後續將**貼上
單向鍊錶: 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...