数据结构题型5-前插结点操作

news2024/12/24 19:31:07
#include <iostream>  //引入头文件
using namespace std;

typedef int Elemtype;

#define Maxsize 100
#define ERROR 0
#define OK    1

typedef struct LNode
{
	Elemtype data;//数据域
	struct LNode* next;//指针域
}LNode, * LinkList;

bool InitList(LinkList& L)   //初始化
{
	L = (LinkList)malloc(sizeof(LNode));
	if (L == NULL)
		return ERROR;
	L->data = 0;
	L->next = NULL;
	return OK;
}

bool ListEmpty(LinkList L)  //判断是否为空
{
	if (L->next != NULL)
	{
		cout << "not empty" << endl;
		return OK;
	}
	else
	{
		cout << "empty,只有头节点" << endl;
		return ERROR;
	}
}

int ListLength(LinkList L)
{
	LNode* p;
	p = L->next;
	int i = 0;
	while (p != NULL)
	{
		p = p->next;
		i++;
	}
	return i;
}

LinkList List_HeadInsert(LinkList& L)  //头插法
{
	L = (LinkList)malloc(sizeof(LNode));
	L->data = 0;
	L->next = NULL;
	LNode* s = NULL;
	int x = 0;
	while (cin >> x)
	{
		s = (LinkList)malloc(sizeof(LNode));
		s->data = x;
		s->next = L->next;
		L->next = s;
		if (cin.get() == '\n') break;
	}
	return L;
}

LinkList List_TailInsert(LinkList& L)  //尾插法
{
	L = (LinkList)malloc(sizeof(LNode));
	L->data = 0;
	L->next = NULL;
	LNode* s = NULL, * r = NULL;
	r = L;
	int x = 0;
	while (cin >> x)
	{
		s = (LinkList)malloc(sizeof(LNode));
		s->data = x;
		r->next = s;
		r = s;
		if (cin.get() == '\n') break;
	}
	s->next = NULL;
	return L;
}
LNode* GetElem(LinkList L, int i)
{
	if (i < 0) return NULL;
	int j = 0;
	LNode* p = L;
	while (p && j < i)
	{
		p = p->next;
		j++;
	}
	return p;
}
LNode* LocateElem(LinkList L, int e)
{
	LNode* p = L->next;
	while (p && p->data != e)
	{
		p = p->next;
	}
	return p;
}
//------------------------核心代码------------------------//
bool InsertPriorNode(LNode* p, int e)
{
	if (p == NULL) return ERROR;
	LNode* s = (LinkList)malloc(sizeof(LNode));
	if (s == NULL) return ERROR;
	s->next = p->next;
	p->next = s;
	s->data = p->data;
	p->data = e;
	return OK;
}
//------------------------核心代码------------------------//
int main(void)
{
	//cout << typeid(NULL).name() << endl;
	LinkList L = NULL;
	List_TailInsert(L);  //尾插法
	cout << "------------------插入特定数据前------------------" << endl;
	cout << L << " " << L->data << " " << L->next << endl;
	cout << L->next << " " << L->next->data << " " << L->next->next << endl;
	cout << L->next->next << " " << L->next->next->data << " " << L->next->next->next << endl;
	//cout << L->next->next->next << " " << L->next->next->next->data << " " << L->next->next->next->next << endl;
	InsertPriorNode(L->next, 100);
	cout << "------------------插入特定数据后------------------"<<endl;
	cout << L << " " << L->data << " " << L->next << endl;
	cout << L->next << " " << L->next->data << " " << L->next->next << endl;
	cout << L->next->next << " " << L->next->next->data << " " << L->next->next->next << endl;
	cout << L->next->next->next << " " << L->next->next->next->data << " " << L->next->next->next->next << endl;
	return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1006495.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue】一文让你进入Vue的大门

Vue简介 官网 ● 英文官网 ● 中文官网 介绍与描述 Vue历史 Vue 是一套用来动态构建用户界面的渐进式JS框架 构建用户界面&#xff1a;把数据通过某种办法变成用户界面 渐进式&#xff1a;Vue可以自底向上逐层的应用&#xff0c;简单应用只需要一个轻量小巧的核心库&#xff0c…

性能、安全和稳定,袋鼠云数据服务平台 DataAPI 为企业 API 保驾护航

通过 API 对外提供数据服务是大部分企业中比较常见的数据应用方式&#xff0c;对于 API 平台管理者、开发者和调用者来说&#xff0c;API 的调用性能、安全性和稳定性是在平台选型时最需要考虑的三个因素。 袋鼠云API开发及管理平台【数栈-数据服务 DataAPI】通过多种手段标准…

nginx代理socket链接集群后,频繁断开重连

一、场景 nginx使用集群模式代理多个socket链接&#xff0c;socket链接频繁断开重连 二、具体表现如下 三、nginx代理配置 ## socket集群 upstream test_socket {server 192.168.1.233:9901;server 192.168.1.243:9901; }server {listen 8600;server_name localhost;l…

51单片机智能小车—PWM方式实现小车调速和转向

目录 1. 让小车动起来 2. 串口控制小车方向 3. 如何进行小车PWM调速 4. PWM方式实现小车转向 1. 让小车动起来 电机模块开发 L9110s概述 接通VCC&#xff0c;GND 模块电源指示灯亮&#xff0c; 以下资料来源官方&#xff0c;具体根据实际调试 IA1输入高电平&#xff0c…

小红书《乡村振兴战略下传统村落文化旅游设计》中南大博士许少辉八一新著

小红书《乡村振兴战略下传统村落文化旅游设计》中南大博士许少辉八一新著

使用伏格尔法解决运输问题

物流和供应链管理是当前管理研究的热点和前沿领域。供应链是一个由物流系统和该供应链中的所有单个组织或企业相关活动组成的网络。为满足供应链中顾客需求&#xff0c;需要对商品服务及相关信息&#xff0c;从产地到消费地高效率低成本地流动及储存进行规划、执行和控制。运筹…

基础秘钥、公钥、地址的熟悉指南

1. 地址 0基础漫画式阅读&#xff1a;https://www.cnblogs.com/charlesblc/p/6130433.html 清晰详细的地址生成解释&#xff1a;比特币&#xff1a;账户私钥、公钥、地址的生成 - kumata - 博客园 (cnblogs.com) 对原理更详细解释&#xff1a;区块链技术核心篇之二&#xff…

计算机竞赛 大数据房价预测分析与可视

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 大数据房价预测分析与可视 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&#xff0c;适合…

java复习-线程常用操作方法

线程常用操作方法 线程的主要方法都定义在 Thread类 之中&#xff0c;因此此处就是学习Thread中的方法。 一. 线程的命名与取得 构造方法&#xff1a;public Thread(Runnable target, String name)设置名字&#xff1a;public final synchronized void setName(String name)…

解决“您在 /var/spool/mail/root 中有新邮件”问题

一、发现问题 二、解决问题 1、删除邮件 cat /dev/null > /var/spool/mail/root 2、禁止系统启动邮件检查 echo "unset MAILCHECK" >> /etc/profile 三、解决结果

16G FC SFP+ SW光模块应用解析

随着云计算、大数据和物联网等技术的迅猛发展&#xff0c;数据传输速率不断提高。传统的铜缆传输面临带宽瓶颈和信号衰减等问题&#xff0c;而光纤传输凭借其高带宽、低损耗等优势成为了现代通信的主要选择。易天光通信的16G SFP SW 多模光模块作为高性能光纤传输设备&#xff…

SAP HANA 体系结构,LandScape,规模调整:完整教程

目录 一、SAP HANA 体系结构 二、SAP HANA 景观 三、SAP HANA 大小调整 SAP HANA 数据库是以主内存为中心的数据管理平台。 SAP HANA 数据库在 SUSE Linux Enterprises Server 上运行&#xff0c;并基于 C 语言构建。 SAP HANA 数据库可以分发到多台计算机。 SAP HANA 的优…

上海亚商投顾:三大指数小幅下跌 光刻机概念股午后走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日小幅调整&#xff0c;创业板指走势较弱。减肥药概念股继续大涨&#xff0c;常山药业2连板&#x…

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)

一、环境准备 1、服务器配置和角色规划 IP 地址主机名硬件配置操作系统安装步骤10.168.168.1cm-server8C16GCentos7新建10.168.168.2agent018C16GCentos7新建10.168.168.3agent028C16GCentos7新建10.168.168.4agent038C16GCentos7新建10.168.168.5agent048C16GCentos7扩容 2…

Harmonic Drive哈默纳科减速机旋转方向和减速比

Harmonic Drive哈默纳科减速机是一款广泛应用于工业生产中的机械设备&#xff0c;通过减速旋转运动来降低机器的转速和输出功率&#xff0c;从而实现精准的调节和控制。哈默纳科减速机的结构紧凑&#xff0c;体积小&#xff0c;重量轻&#xff0c;安装方便&#xff0c;维护简单…

深入了解 FastAPI 鉴权:掌握前后端身份验证的最佳实践

在构建现代化的 Web 应用程序时&#xff0c;用户身份验证和授权是不可或缺的组成部分。FastAPI 提供了多种方法来实现鉴权&#xff0c;以确保只有授权用户可以访问特定的资源或执行特定的操作。本文将介绍 FastAPI 中的鉴权方法&#xff0c;包括基本概念、实践案例和一些提示和…

企业如何转动自己的命运齿轮,实现数字化转型

企业进行数字化转型&#xff0c;需要熟悉数字化转型相关知识&#xff0c;了解众多前辈企业数字化转型成功或失败的案例&#xff0c;从中提炼出数字化转型的关键要点&#xff0c;在数字化转型的浪潮中&#xff0c;破浪前行。 数字化转型关键因素 1、数据 数据是数字化转型的基…

zeppelin安装python(使用pymysql包)

zeppelin安装python&#xff1a; zeppelin的测试环境安装的python的pymysql包 更改zeppelin的python的interpreters&#xff08;注意需要匹配跟我们的python版本相匹配&#xff09; 参考官网链接&#xff1a;https://zeppelin.apache.org/docs/0.10.1/interpreter/python.htm…

开源软件镜像平台-山东大学镜像站

山东大学镜像站 山东大学镜像站是由山东大学&#xff08;青岛&#xff09;网管会镜像站学生运营团队运营的开源镜像站平台&#xff0c;网站平台专门为技术爱好者、工程师、科研人员等开源爱好者提供给丰富的开源镜软件像资源&#xff0c;以及相关的学习和帮助资料&#xff0c;…