plist.h
#ifndef __LINKLIST_H__
#define __LINKLIST_H__
#include <stdio.h>
#include<stdlib.h>
#include<assert.h>
typedef int DataType;
typedef struct Node
{
DataType data;
struct Node* next;
}Node, *pNode, List, *pList;
void InitLinkList(pList* pplist);//初始化链表
pNode BuyNode(DataType d);
void DestroyLinkList(pList* pplist);//销毁链表
void PushBack(pList* pplist, DataType d);//尾插
void PopBack(pList* pplist);//尾部删除
void PushFront(pList* pplist, DataType d);//头部插入
void PopFront(pList* pplist);//头部删除
pNode Find(pList plist, DataType d);//查找元素
void Insert(pList* pplist, pNode pos, DataType d);//在指定位置之前插入一个值
void Erase(pList* pplist, pNode pos);//指定位置删除
void Remove(pList* pplist, DataType d);
void RemoveAll(pList* pplist, DataType d);
void EraseNotTailNode(pNode pos);
void PrintLinkList(pList plist);
int GetListLength(pList plist);
void PrintTailToHead(pList plist);//1. 逆序打印单项链表
#endif //__LINKLIST_H__ #ifndef __LINKLIST_H__
#defin