数据结构尾插法怎么变成头插法?删除数据元素要不要跟着改? 5

boolListInsert(LinkList*&L,inti,ElemTypee)//插入数据元素{intj=0;LinkList*p=L,*s;//p指向头节点,j置... bool ListInsert(LinkList *&L,int i,ElemType e) //插入数据元素
{
int j=0;
LinkList *p=L,*s; //p指向头节点,j置为0(即头节点的序号为0)
while (j<i-1 && p!=NULL) //查找第i-1个节点
{ j++;
p=p->next;
}
if (p==NULL) //未找到第i-1个节点,返回false
return false;
else //找到第i-1个节点*p,插入新节点并返回1
{ s=(LinkList *)malloc(sizeof(LinkList));
s->data=e; //创建新节点*s,其data域置为e
s->next=p->next; //将*s插入到*p之后
p->next=s;
return true;
}
}

bool ListDelete(LinkList *&L,int i,ElemType &e) //删除数据元素
{
int j=0;
LinkList *p=L,*q; //p指向头节点,j置为0(即头节点的序号为0)
while (j<i-1 && p!=NULL) //查找第i-1个节点
{ j++;
p=p->next;
}
if (p==NULL) //未找到第i-1个节点,返回false
return false;
else //找到第i-1个节点*p
{ q=p->next; //q指向第i个节点
if (q==NULL) //若不存在第i个节点,返回false
return false;
e=q->data;
p->next=q->next; //从单链表中删除*q节点
free(q); //释放*q节点
return true; //返回true表示成功删除第i个节点
}
}
展开
 我来答
dcj19941
2014-10-08
知道答主
回答量:10
采纳率:0%
帮助的人:9.7万
展开全部
尾插法删除节点一样的,找到要删除的那个节点跟它的前一个节点,删除即可。
头插法:
bool ListInsert(LinkList *&L,int i,ElemType e) //插入数据元素
{
int j=0;
LinkList *p=L,*s; //L是头节点

if(L->next == NULL)
{
s=(LinkList *)malloc(sizeof(LinkList));
s->data=e; //创建新节点*s,其data域置为e
s->next=p->next; //将*s插入到*p之后
s->next=NULL;
L->next = s;
return true;

}
else
{
s=(LinkList *)malloc(sizeof(LinkList));
s->next = L->next; //头插法将要插入的元素放在头节点后面

L->next = s;

}
追问
输出线性表也要改
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式