单链表相关库函数(c语言实现)

上传人:子 文档编号:43337472 上传时间:2018-06-05 格式:DOC 页数:16 大小:19.23KB
返回 下载 相关 举报
单链表相关库函数(c语言实现)_第1页
第1页 / 共16页
单链表相关库函数(c语言实现)_第2页
第2页 / 共16页
单链表相关库函数(c语言实现)_第3页
第3页 / 共16页
单链表相关库函数(c语言实现)_第4页
第4页 / 共16页
单链表相关库函数(c语言实现)_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《单链表相关库函数(c语言实现)》由会员分享,可在线阅读,更多相关《单链表相关库函数(c语言实现)(16页珍藏版)》请在金锄头文库上搜索。

1、单链表相关库函数单链表相关库函数(C(C 语言实现语言实现) )/*Copyright: File name: linklist.hDescription: 鐢簬璇粏璇存槑姝搴忔枃浠跺畬鎴愮殑涓昏鍔熻兘锛屼笌鍏朵粬妯潡鎴栧嚱鏁扮殑鎺彛锛岃緭鍑?鍊笺佸彇鍊艰寖鍥淬佸惈涔夊強鍙傛暟闂寸殑鎺 埗銆侀搴忋佺嫭绔嬫垨渚濊禆绛夊叧绯?Author: lwbVersion: 0.1Date: 2012/12/03History: */#ifndef _linklist_h_#define _linklist_h_struct Node;typedef struct Node *PtrToNode;typed

2、ef PtrToNode List;typedef PtrToNode Position;typedef int ElementType;/*Function: Description: / 鍑芥暟鍔熻兘銆佹 兘绛夌殑鎻忚堪Calls: / 琚湰鍑芥暟璋冪敤鐨勫嚱鏁版竻鍗?Called By: / 璋冪敤鏈嚱鏁扮殑鍑芥暟娓呭崟Input: / 杈撳叆鍙傛暟璇存槑锛屽寘鎷瘡涓弬鏁扮殑浣?/ 鐢佸彇鍊艰鏄庡強鍙傛暟闂村叧绯汇?Output: / 瀵硅緭鍑哄弬鏁扮殑璇存槑銆?Return: / 鍑芥暟杩斿洖鍊肩殑璇存槑Others: / 鍏跺畠璇存槑*/*鍗曢摼琛熀鏈搷浣?*/ListlkListM

3、akeEmpty( List L);intlkListIsEmpty( List L);voidlkListDelete(ElementType X,List L);Position lkListFind(ElementType X,List L);Position lkListFindPrevious(ElementType X,List L);voidlkListInsert(Position p,Position insertP);intlkListIsLast(Position P,List L);intlkListAdd(List *l,ElementType *element);i

4、ntlkListDestroy(List *l);/*/*鎵睍鎿嶄綔*/intlkListGetLength(List l);/voidlkListPrint(List l,int n);ListlkListCreate(int n);/闇瑕佷慨鏀?intlkListInitValue(List l,ElementType *arr,int n);intlkListPrintLots(List l,List p);/O(l + p)intlkListSwapNext(Position beforeP);ListlkListIntersect(List l,List p);ElementType

5、*lkListGetOrderValue(List l,int order);/*Linus 鐨勫崟閾捐鍒犻櫎鍑芥暟*/voidlkListRemove_if(List *l,ElementType *delElem);/*/#endif#ifndef NULL#ifdef _cplusplus#define NULL 0#else#define NULL (void *)0)#endif#endifstruct NodeElementType Element;Position Next;#include“linkList.h“#include#include#include/*Functio

6、n:lkListInitValueDescription: ?谐?Calls:lkListIsEmpty(); lkListIsLast();Called By: Input: l,?;arr,?;n,?;Return:?Others: */int lkListInitValue(List l,ElementType *arr,int n)/*int i;Position p;p=l;if(lkListIsEmpty(l)printf(“Empty linkList!n“);return 0;for(i=0;iElement = arri;p = p-Next;return (i+1);*/i

7、nt counter;Position p;p = l;counter = 0;while(counter Element = arrcounter;memcpy(p = p-Next;counter +;return counter;/*Function: lkListCreateDescription: ?Calls: mallocCalled By: noInput: n,?小Output: noReturn: l,?;NULL,? ?Others: */List lkListCreate(int n)/* int i;List l;Position p;l = malloc(sizeo

8、f(struct Node) * n);if(l = NULL)return NULL;else/init the list p = l;for(i=0;iNext = (Position )(char *)p + sizeof(struct Node);p = p-Next;p-Next = NULL;return l;*/List headL;Position newNode,pos;int i;newNode = malloc(sizeof(struct Node);memset(/newNode-Element = 0;pos = newNode;headL = newNode;for

9、(i=0;iElement = 0;pos-Next = newNode;pos = pos-Next;pos-Next = NULL;return headL; /*Function: lkListPrintDescription: ?械?Calls:printfCalled By: noneInput: l,?;n,?;Output: ?械?Return: voidOthers: */void lkListPrint(List l,int n)int i;i = 0;if(l = NULL)return;/* doprintf(“%dn“,l-Element);l = l-Next;i+;

10、while(l-Next != NULL)l = l-Next;i+;printf(“n“);/*Function: lkListGetLengthDescription: ?Calls:noneCalled By: noneInput: l,?;Output: voidReturn: i,?Others: / ?*/int lkListGetLength(List l)int i;i = 0;while(l!=NULL)l = l-Next;i+;return i;/*Return true if is empty*/int lkListIsEmpty(List L)return L-Nex

11、t = NULL;/*Reutrn true if P is the last position in list L*/*Parameter L is un7used in this implementation*/int lkListIsLast(Position P,List L)return P-Next = NULL;/*Reutrn Position of X in L;NULL if not found*/Position lkListFind(ElementType X,List L)Position P;P = L-Next;while(P != NULL return P;/

12、*Delete first occurrence of X from a list */*Assume use of a header node */void lkListDelete(ElementType X,List L)Position P,TmpCell;P = lkListFindPrevious( X,L);if( !lkListIsLast( P, L)TmpCell = P-Next;P-Next = TmpCell-Next;free(TmpCell);Position lkListFindPrevious(ElementType X,List L)Position P;P = L;while( P-Next != NULL return P;/*void lkListInsert( ElementType X,List L,Position P)Position TmpCell;TmpCell = malloc(sizeof(struct Node);if( TmpCell = NULL)printf(“Out of space!n“);return ;TmpCell-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号