单链表的插入算法

源代码在线查看: 单链表插入.c

软件大小: 8 K
上传用户: jxsflq
关键词: 单链表 算法
下载地址: 免注册下载 普通下载 VIP

相关代码

				//单链表的插入 
				#include "Stdio.h"
				#include "Conio.h"
				
				#define flag 0
				typedef int datatype;
				typedef struct node
				{
				    datatype data;
				    struct node *next;
				}LNode,*LinkList;
				LinkList Creat_LinkList();
				LNode *Get_LinkList(LinkList L,int i);
				int Insert_LinkList(LinkList L,int i,datatype x);
				void Put_LinkList(LinkList H);
				main()
				{
				    LinkList H;
				    int i;
				    datatype x;
				    H=Creat_LinkList();
				    printf("输入 i:");
				    scanf("%d",&i);
				    printf("输入数字:");
				    scanf("%d",&x);
				    if(Insert_LinkList(H,i,x)==1)
				    Put_LinkList(H);
				    getch();
				}
				LinkList Creat_LinkList()
				{
				    LinkList L=NULL;
				    LNode *s,*R=NULL;
				    int x;
				    s=(LNode *)malloc(sizeof(LNode));
				    R=s;
				    L=s;
				    scanf("%d",&x);
				    while(x!=flag)
				    {
				        s=(LNode *)malloc(sizeof(LNode));
				        s->data=x;
				        R->next=s;
				        R=s;
				        scanf("%d",&x);
				    }
				    R->next=NULL;
				    return L;
				}
				LNode *Get_LinkList(LinkList L,int i)
				{
				    LNode *p=L;
				    int j=0;
				    while(p->next!=NULL&&j				    {
				        p=p->next;
				        j++;
				    }
				    if(j==i) return p;
				    else return NULL;
				}
				int Insert_LinkList(LinkList L,int i,datatype x)//在单链表L的第i个位置上插入值为x的元素 
				{
				    LNode *p,*s;
				    p=Get_LinkList(L,i-1);//查找第i-1个结点 
				    if(p==NULL)
				    {
				        printf("参数i错!");
				        return 0;
				    }//第i-1个结点不存在,不能插入 
				    else
				    {
				        s=(LNode *)malloc(sizeof(LNode));//申请,填装结点 
				        s->data=x;
				        s->next=p->next;//新结点插入在第i-1个结点的后面 
				        p->next=s;
				        return 1;
				    }
				}
				void Put_LinkList(LinkList L)
				{
				    LNode *p;
				    p=L->next;
				    while(p!=NULL)
				    {
				        printf("%d\t",p->data);
				        p=p->next;
				    }
				}
							

相关资源