栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构-线性表-

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构-线性表-

线性表-单链表-按位序插入(带头结点) **

#include
#include
typedef struct Lnode{
ElemType data;
struct Lnode *next;
}Lnode,*linkList;//定义一个单链表结构
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 p=p->next;
j++;
}
if(p==NULL)//比如:插入到第六个,实际长度只有4
return false;
Lnode *s=(Lnode *)malloc(sizeof(Lnode));//申请空间用于存放新数据
s->data=e;//将数据存入
s->next=p->next;
p->next=s;//将s结点与链表连接起来
//位置不能颠倒
return true;
}

按位序插入(不带头结点)

#include
#include
//带头结点
typedef struct Lnode{
ElemType data;
struct Lnode *next;
}Lnode,*linkList;//定义一个单链表结构
//不带头结点
bool ListInsert (linkList &L,int i, elemtype e)
{
if(i<1)
return false;
if(i1){//不带头结点与带头结点情况不同,需要改变头指针的指向
Lnode *s=(Lnode *)malloc(sizeof(Lnode));
s->data=e;
s->next=L;
L=s;
return true;
}
Lnode *p;
int j=1;//不带头结点结点个数从1开始算
p=L;
while(p!=NULL&&j p=p->next;
j++;
}
if(p
NULL)
return false;//输入的I值不合法
Lnode *s=(Lnode *)malloc(sizeof(Lnode));
s->data=e;
s->next=p->next;
p->next=s;
return true;
}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/779849.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号