数据结构-线性表

线性表-单链表的插入操作(在指定结点后/前)

#include <stdio.h>
#include <stdlib.h>
//带头结点
typedef struct Lnode{
ElemType data;
struct Lnode *next;
}Lnode,*LinkList;//定义一个单链表结构

//封装函数,在p结点后插入
bool InsertNextNode(Lnode *p,elemtype e)
{
if(pNULL)
return false;
Lnode *s=(Lnode *)malloc(sizeof(Lnode));
if(s
NULL)//空间不足
return false;
s->data=e;
s->next=p->next;
p->next=s;
}

//前插操作
bool InsertPriorNode(Lnode p,elemtype e)
{
if(pNULL)
return false;
Lnode *s=(Lnode *)malloc(sizeof(Lnode));
if(s
NULL)//空间不足
return false;
s->next=p->next;
p->next=s;//新节点连接到p之后
s->data=p->data;//将P的数据复制给s
p->data=e;//将新数据放入p

//交换数据域部分可改写**斜体样式

elemtype temp=p->data;
p->data=s->data;
s->data=temp;***
//删除部分与粗体可代换
}
//插入之前的判断
bool insert(LinkList &L,int i,ElemType e)
{
if(i<1)//位序小于1,说明输入不合法
return false;
Lnode *p;//定义一个指针用于指向第i-1个元素
int j=0;//用于记录i-1的位置
p=L;//L指向头结点,头结点是第0个结点,不存储数据
while(p!=NULL&&j<i-1){//用于寻找第i-1个位置
p=p->next;
j++;
}
return InsertNextNode(p,e);//对于子函数的调用

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值