一道数据结构的题,求能人帮忙,,,急急急。。。
写出单链表的前插操作,将值为x的结点插入到值为y的结点之前,要求写出单链表的定义和前插操作的函数(其中包括找到要插入结点的位置)。...
写出单链表的前插操作,将值为x的结点插入到值为y的结点之前,要求写出单链表的定义和前插操作的函数(其中包括找到要插入结点的位置)。
展开
1个回答
展开全部
//定义,即申明
void ListInitiate (SLNode ** head)
{
if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL)
exit(1);
(*head)->head=NULL;
}
//输入数据,即在链表的第i各位钱插入数据x
int ListInsert(SLNode *head,int i,DataType x)
{
SLNode *p,*q;
int j;
p=head;
j=-1;
while(p->next!=NULL&&j<i-1)
{
p=p->next;
j++;
}
if(j!=i-1)
{
printf("插入位置参数错!\n");
return 0;
}
if((q==(SLNode *)malloc(sizeof(SLNode)))==NULL)
exit(1);
q->next=p->next;
p->next=q;
return 1;
}
这是调用函数,主函数你随便写写就好了
void ListInitiate (SLNode ** head)
{
if((*head=(SLNode *)malloc(sizeof(SLNode)))==NULL)
exit(1);
(*head)->head=NULL;
}
//输入数据,即在链表的第i各位钱插入数据x
int ListInsert(SLNode *head,int i,DataType x)
{
SLNode *p,*q;
int j;
p=head;
j=-1;
while(p->next!=NULL&&j<i-1)
{
p=p->next;
j++;
}
if(j!=i-1)
{
printf("插入位置参数错!\n");
return 0;
}
if((q==(SLNode *)malloc(sizeof(SLNode)))==NULL)
exit(1);
q->next=p->next;
p->next=q;
return 1;
}
这是调用函数,主函数你随便写写就好了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询