数据结构单链表的插入操作和删除操作怎样用语言描述?
1个回答
展开全部
// 单链表拆手嫌插入操作
int ListInsert(LinkList *&L,int i,ElemType e)
{
int j=0;
LinkList *p=L,*s;
while (j<i-1 && p!=NULL) /*查找第i-1个结点*/
{
j++;
p=p->next;
}
if (p==NULL) /*未找到位序为i-1的结点*/
return 0;
else /*找到位序为i-1的结点*p*/
{
s=(LinkList *)malloc(sizeof(LinkList));/*创建新结点*s*/
s->data=e;
s->next=p->next; /*将*s插入到*p之后*/
p->next=s;
return 1;
}
}
// 单薯锋链表删除操作
int ListDelete(LinkList *&L,int i,ElemType &e)
{
int j=0;
LinkList *p=L,*q;
while (j<i-1 && p!=NULL) /*查找第i-1个结点*/
{
j++;
p=p->next;
}
if (p==NULL) /*未找到位序为i-1的结点*/
return 0;
else /*找到位序为i-1的结点*p*/
{
q=p->next; /*q指向要删旅手除的结点*/
if (q==NULL)
return 0; /*若不存在第i个结点,返回0*/
p->next=q->next; /*从单链表中删除*q结点*/
free(q); /*释放*q结点*/
return 1;
}
}
int ListInsert(LinkList *&L,int i,ElemType e)
{
int j=0;
LinkList *p=L,*s;
while (j<i-1 && p!=NULL) /*查找第i-1个结点*/
{
j++;
p=p->next;
}
if (p==NULL) /*未找到位序为i-1的结点*/
return 0;
else /*找到位序为i-1的结点*p*/
{
s=(LinkList *)malloc(sizeof(LinkList));/*创建新结点*s*/
s->data=e;
s->next=p->next; /*将*s插入到*p之后*/
p->next=s;
return 1;
}
}
// 单薯锋链表删除操作
int ListDelete(LinkList *&L,int i,ElemType &e)
{
int j=0;
LinkList *p=L,*q;
while (j<i-1 && p!=NULL) /*查找第i-1个结点*/
{
j++;
p=p->next;
}
if (p==NULL) /*未找到位序为i-1的结点*/
return 0;
else /*找到位序为i-1的结点*p*/
{
q=p->next; /*q指向要删旅手除的结点*/
if (q==NULL)
return 0; /*若不存在第i个结点,返回0*/
p->next=q->next; /*从单链表中删除*q结点*/
free(q); /*释放*q结点*/
return 1;
}
}
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询