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

如题所述

#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;
}
}
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网