我们先来实现带头单链表的基本操作:
头文件:
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode*next;
}LT,*link;
void InitList(Link phead);//初始化
void InsertListfront(Link phead,ElemType x);//头插
void InsertListback(Link phead,ElemType x);//尾插
void InsertList(Link phead,ElemType x);//随机插入
void DeleteListfront(Link phead);//头删
void DeleteListback(Link phead);//尾删
void DeleteList(Link phead,ElemType x);//随机删除
void ReverseList(Link phead);//倒置
void PrintList(Link phead);//打印
声明函数的源文件:
#include"test.h"
void InitList(Link phead){
if(phead==NULL)
return ;
phead->next=NULL;
}
void InsertListfront(Link phead,ElemType x){
LT*newnode=(LT*)malloc(sizeof(LT));
if(newnode==NULL)
exit(-1);
else{
newnode->data=x;