线性表,单链表的C语言实现,基本操作:初始化,插入,获取,删除,输出链表,插入时并保持有序。
#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkedList;
//初始化链表
int InitList(LinkedList *L){
*L=(LinkedList)malloc(sizeof(LNode));
if(L == NULL){
printf("申请内存空间失败\n");
exit(0);
}
(*L)->next = NULL;
return OK;
}
//插入
int Insert(LinkedList *L, int num){
LNode *p,*q,*s;
q=*L;
p=q->next;
while(p!=NULL && num>p->data){
q=p;
p=p->next;
}
s=(LNode *)malloc(sizeof(LNode));
s->data=num;
s->next=p;
q->next=s;
return OK;
}
//获取元素
int GetElem(LinkedList L,int i,int *e)
{
int j=1;
LNode *p;
p = L-