递增插入链表代码如下
#include <stdio.h>
#include <stdlib.h>
#define FALSE 0
#define OK 1
#define ERROR 0
#define TRUE 1
typedef struct LNode{
int data;
struct LNode *next;
} LNode;
typedef struct LNode *LinkList;
typedef int Status;
//初始化
Status InitList(LinkList *L){
*L=(LNode *)malloc(sizeof(LNode));
if(L == NULL)
printf("申请内存空间失败\n");
(*L)->next = NULL;
return OK;
}
//按递增顺序插入数据
Status ListInsert(LinkList *L, int num){
LNode *p,*q,*s;
q=*L;
p=(*L)->next;
while(p!=NULL && num>p->data){
q=p;
p=p->next;
}
s=(LNode *)malloc(sizeof(LNode));
s->data=num;
s->next=q->next;
q->next=s;
return OK;
}
//输出链表
Status ListShow(LinkList *L){
LNode *p;
p=(*L)->next;
while(p!=NULL){
printf("%d ",p->data);
p=p->next;
}
return OK;
}
int main(){
LinkList L;
InitList(&L); //初始化
ListInsert(&L,10); //插入数据
ListInsert(&L,5);
ListInsert(&L,3);
ListInsert(&L,8);
ListInsert(&L,2);
ListShow(&L); //输出链表的数据
return 0;
}
运行结果