在单链表的第i个位置插入一个节点 算法

以下为初步算法,如需调用,还需进一步修改

#define DATATYPE char
//typedef 作用:将struct node用LINKLIST重命名
//结构体类型定义
typedef struct node{//定义节点类型

DATATYPE data;//数据域
struct node *next;//指针域

}LINKLIST;

// 插入函数
//在单链表L中, 第i个位置,插入节点x
int listinsert(LINKLIST &L,ElemType x , int i){  
 
 p = rear;//让p等于第一个结点
 j = 0;//让计时器j归0
 
 //p!=NULL,且计时器小于i-1时,j++=>循环 p = p -> next让指针后移
 //直到找到,插入结点的位置
 while (p && j < i - 1){
  p = p -> next;
  j++;
 }
 
 //找到之后,判断其位置是否符合常理
 if (!p || i <= 0){
  return 0;
 }
 else
 {
 s = malloc(size);// malloc(size)函数,申请结点空间
 s -> data = x;
 s -> next = p -> next;
 p -> next = s;
 
 return  1;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值