数据结构c语言单链表的增删改查程序:#include <stdio.h>

#include<stdio.h>#include<malloc.h>typedefstructnode{intdata;structnode*next;}node;no... #include <stdio.h>
#include <malloc.h>
typedef struct node
{
int data;
struct node *next;
}
node ;
node *head;
int k;
node * creates()
{
node *p,*s,*h;
int j=1,x, n;
p=h=(node*)malloc(sizeof(node));
h->next=NULL;
printf("请输入链表长度:");
scanf("%d",&n);
printf("请输入 %d 个数字创建链表:",n);
while(j<=n)
{
scanf("%d",&x);
s=(node*)malloc(sizeof(node));
s->data=x;
p->next=s;
p=s;
j++;
}
p->next=NULL;
return h;
}
void insertsl(node *head, int k, int i)
{
/*在带有头结点单链表的第k个元素之前插入元素i*/
int j;
node *p, *t;
p=head;
j=0;
p=head;
while ( p&&j<k-1 ) /*若p不指向空,并且没有找到合适位置则继续循环*/
{
p = p->next;
j++;
}
if (!p||j>k-1) /*k小于1或大于表长*/
printf("插入位置不对。\n");
t=(node *)malloc (sizeof (node)); /*生成新结点*/
t->data=i;
t->next=p->next; /*插入新结点*/
p->next=t;
}
/*insertsl*/
void deletesl(node *h,int i)
{
node *p,*s,*q;
int j=1;
p=h;
while(p->next!=NULL)
{
q=p->next;
if(q->data==i)
break;
p=p->next;
j++;
}

if(p->next==NULL)
{
printf("找不到你要删除的元素\n");
return;
}
else
{
s=p->next;
p->next=s->next;
free(s);
printf("在位置%d成功删除%d\n",j,i);
}
}
node *lianjie(node *L1,node *L2)
{
node *p1, *p2;
p1=L1;
p2=p1->next;
while(p2->next!=NULL)
{
p2=p2->next;
}
//P指向链表L1的最后一个节点p2->next=L2->next;
//把表二的第一个节点加到表一之后,然后释放表二

return p1;
}

void hebing (node *L)//清除新链表中相同的元素

{
node *s,*t,*r;
s=L->next;
while(s)
{
t=s;
r=s->next;
while(t->next)
{
if(s->data==r->data)
{
t->next=r->next;
r=t->next;
}
else
{
t=t->next;
r=r->next;
}
}
s=s->next;
}
}
void print(node *h,node *s)
{
s=h->next;
if(s!=NULL)
{
while(s!=NULL)
{
printf("\n链表中的元素为 %d ",s->data);
}
}
}
编译后有两个错误 不知道怎么改qaq
展开
 我来答
悠久纤尘
2015-05-09 · TA获得超过191个赞
知道小有建树答主
回答量:160
采纳率:66%
帮助的人:106万
展开全部

没有main函数在你程序的最后加上

void main()
{
creates();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式