首页 > 代码库 > 算法:单链表实现
算法:单链表实现
list.h
#ifndef _LIST_H_ #define _LIST_H_ struct Node; typedef int ElementType; typedef struct Node *PtrToNode; typedef PtrToNode List; typedef PtrToNode Position; List MakeEmpty(List L); int IsEmpty(List L); Position Find(ElementType X,List L); Position FindPrevious(ElementType X,List L); void Delete(ElementType X,List L); void Insert(ElementType X,List L,Position P); void DeleteList(List L); #endif struct Node { ElementType element; Position Next; };
list.c
#include "list.h" #include <stdlib.h> #include <stdio.h> List MakeList(List L) { Position P,temp; P=L->Next; while(P!=NULL){ temp=P; P=P->Next; free(temp); } return L; } int IsEmpty(List L) { return L->Next==NULL; } Position Find(ElementType X,List L) { Position P; P=L->Next; L->Next=NULL; while(P!=NULL&&P->element!=X){ P=P->Next; } return P; } Position FindPrevious(ElementType X,List L) { Position P; P=L; while(P->Next!=NULL&&P->Next->element!=X){ P=P->Next; } return P; } void Insert(ElementType X,List L,Position P) { Position temp; temp=malloc(sizeof(struct Node)); if(temp==NULL){ printf("out of space"); exit(1); } temp->element=X; temp->Next=P->Next; P->Next=temp; } void Delete(ElementType X,List L) { Position P,temp; P=FindPrevious(X,L); if(P->Next!=NULL){ temp=P->Next; P->Next=temp->Next; free(temp); } } void DeleteList(List L) { MakeEmpty(L); }
算法:单链表实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。