当前位置: 首页 > news >正文

408cpp学习之链表(二)

        今天我主要学习了单链表的基础操作,包括头插法,尾插法,按位查找以及按元素查找,下面我将我今天所写代码分享给大家。

1. 头插法创建链表

//头插法创建链表
#define maxsize 50
typedef int Elemtype;
typedef struct Lnode {Elemtype data; //数据域struct Lnode* next; //指针域
}Lnode,*LinkList;void head_insert(LinkList L)
{Elemtype x;scanf("%d", &x);LinkList s;L->next = NULL; //初始化头结点的next指针为NULLwhile (x != 99999) //以99999作为输入结束标志{s = (LinkList)malloc(sizeof(Lnode)); //创建新结点s->data = x; //赋值数据域s->next = L->next; //头插法关键步骤:让新结点指向原来的第一个节点L->next = s; //头结点指向新结点scanf("%d", &x); //继续读取输入}
}void PrintL(LinkList L)
{L = L->next; //跳过头结点while (L!= NULL) //遍历链表直到NULL{printf("%3d\n", L->data); //打印当前结点数据L = L->next; //移动到下一个结点}
}

2. 尾插法创建链表

//尾插法创建链表
#define maxsize 50
typedef int elemtype;
typedef struct Lnode {elemtype data;struct Lnode* next;
}Lnode,* link_list;void tail_insert(link_list L)
{L->next = NULL; //初始化头结点的next指针为NULLelemtype x;scanf("%d", &x);link_list r = L; //r始终指向链表尾部link_list s;while (x != 99999) //以99999作为输入结束标志{s = (link_list)malloc(sizeof(Lnode)); //创建新结点s->data = x; //赋值数据域r->next = s; //尾部结点的next指向新结点r = r->next; //r指向新的尾部scanf("%d", &x); //继续读取输入}r->next = NULL; //最后将尾结点的next置为NULL
}

3. 按位置查找结点

//按位置查找链表结点
link_list Search_L(link_list L,int posi)
{int i = 1; //从第一个结点开始计数(头结点不算)while (L && i <= posi) //遍历直到找到指定位置或链表结束{L = L->next;i++;}return L; //返回找到的结点指针,没找到返回NULL
}

4. 按值查找结点

//按值查找链表结点
link_list search_num(link_list L, elemtype num)
{L = L->next; //跳过头结点while (L) //遍历链表{if (L->data == num) //找到匹配的值{return L; //返回结点指针}L = L->next; //继续下一个结点}return NULL; //没找到返回NULL
}

5. 在指定位置插入结点

//在链表指定位置插入结点
void insert_num(link_list L, elemtype num, elemtype posi)
{elemtype i = 0;//找到插入位置的前一个结点while (L && posi && i < posi - 1){L = L->next;i++;}link_list s;s = (link_list)malloc(sizeof(Lnode)); //创建新结点s->data = num; //赋值数据域s->next = L->next; //新结点指向原位置的结点L->next = s; //前一个结点指向新结点
}

http://www.dtcms.com/a/403734.html

相关文章:

  • 攻防世界-Web-Training-WWW-Robots
  • No015:如果DeepSeek与四维世界沟通——跨越维度的认知革命
  • JS逆向 - 盼之(ssxmod_itna、ssxmod_itna2)纯算 + 补环境
  • 复习两个与噪声有关的参数:SI-SDR和PESQ
  • apiSQL+GoView:一个API接口开发数据大屏
  • 关停网站的申请网站怎么营销
  • 湖南企业网站定制wordpress投递文章插件
  • Day07_苍穹外卖——缓存菜品与套餐购物车添加查看清空删除功能
  • 默会之墙:机器人教学困境中的认知迷雾与破晓之光
  • 电子规划书商务网站建设在线制作非主流流光闪字 急切网
  • 决策树(Decision Tree)
  • 大模型剪枝系列——非结构化剪枝、结构化剪枝、动态结构化剪枝
  • MoE 的“大脑”与“指挥官”:深入理解门控、路由与负载均衡
  • TENGJUN“二合一(2.5MM+3.5MM)”耳机插座:JA10-BPD051-A;参数与材质说明
  • 返佣贵金属交易所网站建设wordpress装修主题
  • 做海报推荐网站好的网络推广平台
  • 【docker】常用命令
  • Doris数据库-初识
  • Ubuntu 20.04上安装Miniconda3
  • zynq读取片内DNA
  • python用于网站开发桐乡做网站的公司
  • Maven的安装与配置的详细步骤
  • 第三篇布局
  • 网站建设推广 公司两学一做网站是多少钱
  • 分布式专题——21 Kafka客户端消息流转流程
  • 安平有做农产品的网站被wordpress数据库导入插件
  • 个人网站可备案江西龙峰建设集团的网站
  • 从MR迁移到Spark3:数据倾斜与膨胀问题的实战优化
  • 成都手机建站网站建设平台赚钱
  • Service :微服务通信、负载、故障难题的解决方案