鏈表,單鏈表

關于鏈表的一些知識

ifndef LINKLIST_H

define LINKLIST_H

typedef void Linklist;

typedef struct _tag_LinkListNode
{
struct _tag_LinkListNode *next;
}LinkListNode;

Linklist* LinkList_Create(); //鏈表的創(chuàng)建

void LinkList_Destory(Linklist *list); //銷毀鏈表

void LinkList_Clear(Linklist *list); //清空鏈表數據

int Linklist_length(Linklist *list); //獲取鏈表長度

void Linklist_Insert(Linklist *list,LinkListNode *node,int pos); //插入數據到鏈表

LinkListNode* Linklist_get(Linklist* list,int pos); //獲取鏈表某一位置數據

LinkListNode* Linklist_Delete(Linklist *list,int pos); //刪除某以數據

endif // LINKLIST_H

include "linklist.h"

include <stdlib.h>

include <stdio.h>

typedef struct _tag_LinkList
{
LinkListNode header;
int length;
}TLinkList;

Linklist* LinkList_Create() //鏈表的創(chuàng)建
{
//g分配內存
TLinkList *Tlist = (TLinkList *)malloc(sizeof(TLinkList));
if(Tlist == NULL){
return NULL;
}
Tlist->header.next = NULL;
Tlist->length = 0;
return Tlist;
}

void LinkList_Destory(Linklist *list) //銷毀鏈表
{
if(list != NULL){
free(list);
}
}

void LinkList_Clear(Linklist *list) //清空鏈表數據
{
TLinkList *tlist = (TLinkList *)list;
if(tlist ==NULL)
{
return;
}
tlist->length = 0;
tlist->header.next = NULL;
}

int Linklist_length(Linklist *list) //獲取鏈表長度
{
TLinkList *tlist = (TLinkList *)list;
if(tlist ==NULL)
{
return -1;
}
return tlist->length;
}

void Linklist_Insert(Linklist *list,LinkListNode *node,int pos) //插入數據到鏈表
{
TLinkList *tlist = (TLinkList *)list;
LinkListNode *current = NULL;
if(list == NULL || node == NULL || pos < 0){
return;
}

 //要找到插入的前一個
 current = &tlist->header;
 for (int i = 0; (i < pos)&&(current->next!=NULL);i++){
     current = current->next;
 }

 node->next = current->next;
 current->next = node;
 tlist->length++;
 return;

}

LinkListNode* Linklist_get(Linklist* list,int pos) //獲取鏈表某一位置數據
{
TLinkList *tlist = (TLinkList *)list;
LinkListNode *current = NULL;
if(list == NULL || pos < 0 || pos >tlist->length){
return NULL;
}
//要找到插入的前一個
current = &tlist->header;
for (int i = 0; (i < pos)&&(current->next!=NULL);i++){
current = current->next;
}
return current->next;
}

LinkListNode* Linklist_Delete(Linklist *list,int pos) //刪除某以數據
{
TLinkList *tlist = (TLinkList *)list;
LinkListNode *current = NULL;
if(list == NULL || pos < 0 || pos >tlist->length){
return NULL;
}
//要找到插入的前一個
current = &tlist->header;
for (int i = 0; (i < pos)&&(current->next!=NULL);i++){
current = current->next;
}
LinkListNode *temp = current->next;
current->next = temp->next;
tlist->length--;
return temp;
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末反惕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子大磺,更是在濱河造成了極大的恐慌蕉扮,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件角溃,死亡現(xiàn)場離奇詭異拷获,居然都是意外死亡,警方通過查閱死者的電腦和手機减细,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門匆瓜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人未蝌,你說我怎么就攤上這事驮吱。” “怎么了萧吠?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵左冬,是天一觀的道長。 經常有香客問我纸型,道長拇砰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任狰腌,我火速辦了婚禮除破,結果婚禮上,老公的妹妹穿的比我還像新娘琼腔。我一直安慰自己瑰枫,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布丹莲。 她就那樣靜靜地躺著光坝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪甥材。 梳的紋絲不亂的頭發(fā)上盯另,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音擂达,去河邊找鬼土铺。 笑死胶滋,一個胖子當著我的面吹牛,可吹牛的內容都是我干的悲敷。 我是一名探鬼主播究恤,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼后德!你這毒婦竟也來了部宿?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤瓢湃,失蹤者是張志新(化名)和其女友劉穎理张,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體绵患,經...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡雾叭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了落蝙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片织狐。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖筏勒,靈堂內的尸體忽然破棺而出移迫,到底是詐尸還是另有隱情,我是刑警寧澤管行,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布厨埋,位于F島的核電站,受9級特大地震影響捐顷,放射性物質發(fā)生泄漏荡陷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一套菜、第九天 我趴在偏房一處隱蔽的房頂上張望亲善。 院中可真熱鬧设易,春花似錦逗柴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至屠尊,卻和暖如春旷祸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背讼昆。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工托享, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓闰围,卻偏偏與公主長得像赃绊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子羡榴,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內容

  • 背景 一年多以前我在知乎上答了有關LeetCode的問題, 分享了一些自己做題目的經驗碧查。 張土汪:刷leetcod...
    土汪閱讀 12,724評論 0 33
  • //leetcode中還有花樣鏈表題,這里幾個例子校仑,冰山一角 求單鏈表中結點的個數----時間復雜度O(n)這是最...
    暗黑破壞球嘿哈閱讀 1,510評論 0 6
  • LinkList.h typedef void LinkList;typedef void LinkListNod...
    領悟悟悟閱讀 237評論 0 0
  • 鏈表 概念 說到鏈表忠售,coder們都不會陌生,在日常開發(fā)中或多或少都會用到它迄沫。它是鏈式存儲的線性表稻扬,簡稱鏈表。鏈表...
    扈扈哈嘿閱讀 2,076評論 0 5
  • 鏈表(Linked List)是一種物理存儲單元上非連續(xù)羊瘩、非順序的存儲結構腐螟,數據元素的邏輯順序是通過鏈表中的指針鏈...
    蓋世英雄_ix4n04閱讀 600評論 0 0