单链表
不带头节点的单链表(基本操作)
1. 初始化
#include<>
#include<>
typedef struct LNode{
int data;
struct LNode *next;
}LNode, * LinkList;
LinkList initList(LinkList list){
list=NULL;
return list;
}
2. 插数据
LinkList insertFirst(LinkList list,int index,int data){
if(index == 1){
LNode *newNode = (LNode *)malloc(sizeof(LNode));
if(newNode==NULL){
return list;
}
(*newNode).next = list;
list = newNode;
(*newNode).data = data;
return list;
}
return list;
}
int insertList(LinkList list,int index,int data){
LNode *tmp=list;
int j=1;
if(list==NULL){
return 0;
}
if(index<2){
return 0;
}
while(tmp!=NULL&&j<index-1){
tmp=(*tmp).next;
j++;
}
if(tmp==NULL){
return 0;
}
LNode *newNode=(LNode *)malloc(sizeof(LNode));
if(newNode==NULL){
return 0;
}
(*newNode).data=data;
(*newNode).next=(*tmp).next;
(*tmp).next=newNode;
return 1;
}
int insertNextNode(LNode *p,int data){
if(p==NULL){
return 0;
}
LNode *newNode=(LNode *)malloc(sizeof(LNode));
if(newNode==NULL){
return 0;
}
(*newNode).data=data;
(*newNode)