链表的问题
题目要求是先建一个非负递减的链表 然后往里面插入数据,当要插入的数据与当前某数据相同时返回-1(怎么也实现不了)
要求用函数 int insertElement(int value)
我的程序如下
#include<stdio.h>
#include<stdlib.h>
typedef struct slist
{
int data;
struct slist *next;
}Linklist,*Node;
Node creat(void)
{
Linklist *head;
head=(Linklist*)malloc(sizeof(Linklist));
return(head);
}
int insertElement(int value)
{
Linklist *p0,*p1,*p2,*head;
head=NULL;
int k;
p2=p1=head;
p0=(Linklist*)malloc(sizeof(Linklist));
p0->data=value;
if(head!=NULL)
{
while(p1->next!=NULL)
{
if(p1->data==p0->data){ k=-1;break;}
else if(p1->data < p0->data)
{
if(head==p1) head=p0;
else p2->next=p0;
p0->next=p1;k=p0->data; break;
}
else
p2=p1;
p1=p1->next;
}
}
}
int main()
{
Linklist *p,*head;
printf("insert:47 %d\n",insertElement(47));
printf("insert:47 %d\n",insertElement(47));
printf("insert:38 %d\n",insertElement(38));
}
我是C语言菜鸟 肯定有很多错误在里面
哪位大侠给我详细讲讲啊
我在线等!!!!!