c语言单链表插入源代码 15

#include<stdio.h>#include<stdlib.h>#defineOK2#defineERROR0#defineOVERFLOW-2#defineLIS... #include<stdio.h>
#include<stdlib.h>
#define OK 2
#define ERROR 0
#define OVERFLOW -2
#define LIST_LNIT_SIZE 100
#define LISTINCREMENT 10

typedef int ElemType;
typedef int Status;
typedef struct
{
ElemType *elem;
int length;
int listsize;
}SqList;
Status InitList_Sq(SqList &L) //构造一个空链表
{
L.elem=(ElemType *)malloc(LIST_LNIT_SIZE*sizeof(ElemType));
if(!L.elem) exit(OVERFLOW); //储存分配失败
L.length=0;
L.listsize=LIST_LNIT_SIZE;
return OK;
}
Status ListInsert_Sq(SqList &L,int i,ElemType e) //在顺序线性表L中第i个位置插入新的元素e
{
ElemType *newbase ;
int *p,*q;
if(i<1||i>L.length+1)
return ERROR;
if(L.length>=L.listsize)
{

newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));//改变L.elem指向的内存区域的大小为(L.listsize+LISTINCREMENT)*sizeof(ElemType))
if(!newbase) exit(OVERFLOW);
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
q=&(L.elem[i-1]);
for(p=&(L.elem[L.length-1]);p>=q;--p)
*(p+1)=*p;
*p=e;
++L.length;
return OK;
}
这是函数 我需要一个完整的主函数调用 哪位大哥大姐帮帮忙
展开
 我来答
猪头或火宝宝
2010-09-26 · TA获得超过2758个赞
知道小有建树答主
回答量:1001
采纳率:0%
帮助的人:1533万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式