帮我用C语言写一个数据结构中单链表的建立和插入以及删除操作,就只写这三个操作,小弟是新手谢谢各位了

 我来答
百度网友e43033c
2011-04-04 · TA获得超过1130个赞
知道小有建树答主
回答量:933
采纳率:100%
帮助的人:921万
展开全部
#include<stdio.h>
#include<malloc.h>
typedef struct Node //定义节点
{
int data; //可以为其他类型
struct Node *next;
}List;
void create(struct Node *&L,int a[],int n) //创建,L是链表头,a是要插入数组,n是要插入元素个数
{
List *s;
int i;
L=(List *)malloc(sizeof(List));
L->next=NULL;
for(i=0;i<n;i++)
{
s=(List *)malloc(sizeof(List));
s->data=a[i];
s->next=L->next;
L->next=s;
}
}
int insert(List *&L,int i,int e) //插入,i是插入位置,e是插入的值
{
int j=0;
List *p=L,*s;
while(j<i-1&&p!=NULL)
{
j++;
p=p->next;
}
if(p==NULL)
return 0;
else
{
s=(List *)malloc(sizeof(List));
s->data=e;
s->next=p->next;
p->next=s;
return 1;
}
}
int delete(List *&L,int i,int &e)//i是要删除元素的位置,e保存被删除元素的值
{
int j=0;
List *p=L,*q;
while(j<i-1&&p!=NULL)
{
j++;
p=p->next;
}
if(p==NULL)
return 0;
else
{
q=p->next;
if(q==NULL)
return 0;
e=q->data;
p->next=q->next;
free(p);
return 1;
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式