c语言单链表插入源代码
发布网友
发布时间:2022-06-08 03:16
我来回答
共1个回答
热心网友
时间:2023-11-06 02:20
lz看看这个代码吧:lz的代码有太多的错误,需要慢慢的练练自己的编程的能力,
http://zhidao.baidu.com/team/view/我love编程
我的团队,可以交流一下:
代码:
#include<stdio.h>
#include<iostream.h>
#include<malloc.h>
#define N 10
struct list
{ int max;
int n;
int *a;
};
typedef struct list pseqlist;
pseqlist *creatmulllist_seq()//创建空表
{ struct list *palist;
palist=(pseqlist *)malloc(sizeof(pseqlist ));
if(palist!=NULL)
{ palist->a=(int *)malloc(sizeof(int)*N);
if(palist->a)
{
palist->n=0;
return palist;
}
}
}
pseqlist *insert_sep(pseqlist *p,int m)//输入数组
{ int i,k;
p->n=m;
printf("输入数组:\n");
for(i=0;i<m;i++)
{ scanf("%d",&k);
p->a[i]=k;
}
return p;
}
int insertPost_sep(pseqlist *q,int p,int x)//插入x
{ int i;
if(p<0||p>q->n-1)return 0;
else { q->n++;
for(i=q->n-1;i>p;i--)
q->a[i]=q->a[i-1];
q->a[p]=x;
return 1;
}
}
void main ()
{ int m,p,x,i,k;
printf("输入数组的长度:\n");
scanf("%d",&m);
pseqlist *palist;
palist=creatmulllist_seq();//创建空表
insert_sep(palist,m);//输入数组
printf("输入要插入的位置:\n");
scanf("%d",&p);
printf("输入要插入的数:\n");
scanf("%d",&x);
k=insertPost_sep(palist,p,x);//插入
if(k)for(i=0;i<palist->n;i++)
printf("%3d",palist->a[i]);
else printf("没有插入成功");
printf("\n");
}
测试:
输入数组的长度:
10
输入数组:
1 2 3 4 5 6 7 8 9 10
输入要插入的位置:
3
输入要插入的数:
20
1 2 3 20 4 5 6 7 8 9 10
Press any key to continue