单链表C语言实现
#include <stdio.h>
#define MAXSIZE 100
#define OVERFLOW 0
#define OK 1
#define ERROR 0
//#define NULL 0
int main(){
}
//单链表的结构 ,这里泛型定义为整形
typedef struct LNode{
int data;
struct LNode *next;
} LNode,*LinkList;
// 单链表的初始化
int InitList(LinkList &L){
L=new LNode;
L->next=NULL;
return OK;
}
//单链表的赋值
int SetElem(LinkList &L,int e){
while(L->next!=NULL){
L=L->next;
}
L->next=new LNode;
L->data=e;
L->next=NULL;
return OK;
}
//单链表的取值
int GetElem(LinkList L,int e){
for(int i=0;i<e;i++){
L=L->next;
}
return L->data;
}
//单链表的插入
int ListInsert(LinkList &L,int i,int e){
for(int j=0;j<i-1;j++){
L=L->next;
}
LNode *L1=new LNode;
L1->data=e;
L1->next=L->next;
L->next=L1;
return OK;
}
//单链表的删除
int LIstDelete(LinkList &L,int i){
for(int j=0;j<i-1;j++){
L=L->next;
}
L->next=L->next->next;
return OK;
}
//单链表的归并
int MergeList(LinkList &L1,LinkList &L2){
while(L1->next!=NULL){
L1=L1->next;
}
L1->next=L2->next;
return OK;
}