3、当p指向扫描到下一个节点时,计数器j加1;

当j==i时,p所指的结点就是我们要找的第i个结点。

//取单链表中第i个元素的内容

int getElem(LinkList L,int i,ElemType &e){

LinkList p;

p=L->next; //初始化

int j=1;

while(p!=NULL&j<i){ //向后扫描,直到p指向第i个元素或p为空

p=p->next;

j++;

}

if(p==NULL||i<=0)

return -1;

e=p->data; //取第i个元素

return e;

}

3、按值查找


算法步骤:

1、从第一个结点开始,依次和e(e就给定的那个值)相比较;

2、如果找到一个其值域e相等的数据元素,则返回其在链表中的“位置(逻辑序号)”或地址;

3、如果查遍整个链表都没有找到其值和e相等的元素,则返回0或“NULL”。

3.1根据指定数据获取该数据的地址

LNode *locateElem(LinkList L,ElemType e){

//在线性表L中查找值为e的数据元素

//找到。则返回L中值为e的数据元素的地址,查找失败,则返回NULL

LinkList p;

p=L->next;

while(p!=NULL&&p->data!=e){

p=p->next;

}

return p;

}

3.2根据指定数据获取该数据的逻辑序号

//在线性表L中查找值为e的数据元素的逻辑序号

//返回L中值为e的数据元素的逻辑序号,查找失败返回0

int locateElem(LinkList L,ElenType e){

LinkList p;

int j=1;

p=L->next;

while(p!=NULL&&p->data!=e){

p=p->next;

j++;

}

if(p!=NULL)

return j;

else

return 0;

}

4、在第i个元素之前插入数据元素e


算法步骤:

1、先在单链表L中查找第i-1个结点,若没有找到,则返回0;找到了用p指针指向该结点。

2、创建一个数据域为e的新结点s。

3、插入新结点:(1)将新结点s的next域指向位置为i的结点;(2)将位置为i-1(结点p)的next域指向新结点s。

(1)s->next=p->next;   (2)p->next=s;

int insertList(LinkList &L,int i,ElemType e){ //插入值为e的结点

LinkList p,s;

p=L;

int j=0;

while(p!=NULL&&j<i-1){ //查找第i-1个结点

j++;

p=p->next;

}

if(p==NULL||i<=0) //没有找到时返回0

return 0;

else{

s=(LinkList)malloc(sizeof(LNode));

s->data=e; //创建存放元素e的新结点s

s->next=p->next;

p->next=s;

return 1; //插入成功,返回1

}

}

5、将线性表L中第i个数据元素删除


算法步骤:

1、先在单链表L中查找第i-1个结点,若没有找到则返回0,找到了由指针p指向该结点;

2、让指针q指向p的后继结点(也就是要删除的结点),若q指的结点为空则返回0;

3、p->next=q->next;  free(q);

//删除第i个数据元素

int delElem(LinkList &L,int i,ElemType &e){

LinkList p,q;

p=L;

int j=0;

while(p->next!=NULL&&j<i-1){ //查找第i个结点

j++;

p=p->next;

}

if(p->next==NULL||i<=0)

return 0;

else{

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

最后

整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》

前端面试题宝典

前端校招面试题详解

熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》

[外链图片转存中…(img-5Zygbyma-1711864809487)]

[外链图片转存中…(img-79c2JTai-1711864809487)]

[外链图片转存中…(img-dUMUDkhb-1711864809488)]

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐