- Node.h
#ifndef NODE_H
#define NODE_H
#include <stdio.h>
#include <stdlib.h>
typedef struct NODE
{
int value;
struct NODE *prior, *next;
}Node, *DNode;
#endif
- List.h
#ifndef LIST_H
#define LIST_H
#include "Node.h"
void InitDouLinkList(DNode *pHead);
void InsertByHead(DNode *pHead, int value);
void InsertByTail(DNode *pHead, int value);
int GetLength(DNode pHead);
void ShowDouLinkList(DNode pHead);
void ReverseShowLinkList(DNode pHead);
void DeleteByHead(DNode *pHead);
void DeleteByTail(DNode *pHead);
DNode FindByValue(DNode pHead, int value);
DNode FindByIndex(DNode pHead, int index);
void InsertByIndex(DNode *pHead, int index, int value);
void DeleteByIndex(DNode* pHead, int index);
void UpdateByIndex(DNode pHead, int index, int value);
void UpdateByValue(DNode pHead, int oldval, int newval);
void DeleteByValue(DNode *pHead, int value);
void Clear(DNode* pHead);
#endif
- List.c
void InitDouLinkList(DNode *pHead)
{
*pHead = (DNode)malloc(sizeof(Node));
(*pHead)->prior