//单链表不带头结点
#include<stdio.h>
#include<stdlib.h>
typedef struct LNode{
int data;
struct LNode *next;
}LNode, * LinkList;
LinkList initList(LinkList list){
list=NULL;
return list;
}
//插数据(第一个位置)(指定位置)
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).next=(*p).next;
(
单链表不带头结点C语言详细代码实现
最新推荐文章于 2023-03-12 14:35:41 发布