可復用單鏈表的實現

2021-06-22 02:32:44 字數 2514 閱讀 5149

/******************linklist.h**********************/ 

#ifndef linklist_h_

#define linklist_h_

typedef void linklist;

//定義結點指標域

typedef struct _tag_linklistnode linklistnode ;

struct _tag_linklistnode

;//定義頭結點

typedef struct _tag_linklist

tlinklist;

//建立空鍊錶

linklist* linklist_create();

//銷毀鍊錶

void linklist_destroy(linklist* list);

//清空鍊錶

void linklist_clear(linklist* list);

//向鍊錶的第pos個元素處插入node元素 注:pos=為第乙個元素

int linklist_insert(linklist* list, linklistnode* node,int pos);

//刪除鍊錶第pos個元素

linklistnode* linklistdelete(linklist* list, int pos);

//獲取鍊錶第pos個元素

linklistnode* linklist_get(linklist* list, int pos);

//獲取鍊錶的元素

int linklist_length(linklist* list);

//反轉單鏈表 

int linklist_reverse(linklist* list);

#endif

/******************linklist.c**********************/ 

#include #include #include "linklist.h"

linklist* linklist_create()

return ret;

}void linklist_destroy(linklist* list)

void linklist_clear(linklist* list)

}int linklist_insert(linklist* list, linklistnode* node,int pos)

node->next = current->next;

current->next = node;

slist->length++;

} return ret;

}linklistnode* linklistdelete(linklist* list, int pos) //pos=0為第乙個元素

ret = current->next;

current->next = ret->next;

slist->length--;

}

return ret;

}linklistnode* linklist_get(linklist* list, int pos)

ret = current->next;

}

return ret;

}int linklist_length(linklist* list)

return ret;

}int linklist_reverse(linklist* list)

slist->header.next = tmp;

}return ret;

}

/*

name: 鍊錶的實現

author: lxb

date: 16/05/14 16:40

description: 包括鍊錶創立、刪除、新增、銷毀、反轉等基本操作

*/#include #include #include "linklist.h"

//定義資料元素(指標域及資料域)

struct value

;int main(int argc, char *argv)

while(linklist_length(list)>0) /*倒序輸出*/

linklist_reverse(list);

for(i=0;iv);

} linklist_destroy(list);

system("pause");

return 0;

}

單鏈表的實現

include includetypedef struct node 定義鍊錶 snode snode creat 建立鍊錶的函式 q next null return head int length snode head 測鍊錶的結點數 return i void display snode he...

單鏈表的實現

單鏈表夜市線性表的一種表現形式,乙個表節點由乙個資料空間和乙個指標域組成。指標域記錄下乙個結點的位址。鍊錶在插入,刪除功能中效率高。但是讀取某個結點的時候需要順序讀取。效率不如順序儲存形式。下面是一些鍊錶實現的 鍊錶.cpp 定義控制台應用程式的入口點。include stdafx.h define...

單鏈表的實現

單鏈表是資料結構中重要並且基礎的一環,學習資料結構就需要知道單鏈表有的常用操作。1 單鏈表的頭插式建立 2 單鏈表的尾插式建立 3 單鏈表的長度計算 4 單鏈表的列印輸出 5 單鏈表的釋放操作 6 單鏈表是否為空判斷 7 單鏈表在指定index插入指定元素 8 單鏈表刪除指定index的節點 9 單...