C++实现单向链表操作(实验3--作业)

用c++实现自动排序的单向链表 这是一个数据结构作业: 用c++编写如下数据结构:在单向链表的基础上,加入一个自动排序的功能,要求任何时候链表都是升序的。要实现基本的插入和输出功能。 分析:这个链表在功能上类似优先队列 priority_queue 。 相同点:都是非线性结构,都是不限制数据量的容器,每次插入数据后都能保持数据顺序。 不同点:优先队列采用二叉堆结构,实现自动排序的代价很低,而链表则要每次向后遍历,直至找到合适的位... 阅读详情

一、单向链表介绍

单向链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据域和一个指向下一个节点的指针域。

  1. 结构特点:

    • 单向链表的节点通过指针链接在一起,形成一个线性的数据结构。
    • 链表的头节点通常是一个特殊的节点,它不存储实际的数据,只用于指向链表的第一个存储数据的节点。
    • 每个节点的指针指向下一个节点,最后一个节点的指针为NULL,表示链表的结束。
  2. 优点:

    • 动态内存分配:可以根据需要动态地添加和删除节点,不需要预先确定链表的大小。
    • 插入和删除操作高效:在链表中间插入或删除节点只需要修改几个指针,时间复杂度为O(1)O(1)O(1)(在已知插入或删除位置的情况下)。
  3. 缺点:

    • 随机访问困难:不像数组可以通过下标直接访问元素,在链表中访问特定位置的元素需要从头节点开始遍历,时间复杂度为O(n)O(n)O(n)。
  4. 常见操作:

    • 初始化:创建一个空链表,通常包括创建头节点并将其指针域设置为NULL。
    • 插入节点:可以在链表的头部、尾部或特定位置插入新节点。
    • 删除节点:根据给定的条件删除链表中的节点。
    • 查找节点:在链表中查找具有特定值的节点。
    • 遍历链表:从头到尾遍历链表,访问每个节点的数据。

二、代码总结

这段 C++代码实现了一个单向链表的多种操作,包括初始化、插入、删除、查找、排序、合并和逆置等功能。

  1. 功能模块:

    • 初始化和销毁:
      • LinkedListInit函数用于初始化一个空链表,创建头节点并分配内存。
      • LinkedListDestroy函数用于销毁链表,释放每个节点的内存空间。
      • LinkedListClear函数用于置空链表,删除链表中的所有节点,但保留头节点。
    • 插入操作:
      • LinkedListAddHead函数实现头插法,在链表头部插入新节点。
      • LinkedListAddTail函数实现尾插法,在链表尾部插入新节点。
      • LinkedListInsert函数按序号在链表中插入新节点。
    • 删除操作:
      • LinkedListDelete函数按序号删除链表中的节点。
    • 查找操作:
      • LinkedListFind函数按值在链表中查找节点。
    • 打印操作:
      • LinkedListPrint函数用于打印链表中的所有节点。
    • 排序操作:
      • LinkedListSort函数实现冒泡排序,对链表中的节点进行排序。
    • 合并操作:
      • LinkedListMerge函数将两个有序链表合并为一个有序链表。
    • 逆置操作:
      • LinkedListReverse函数实现链表的原地逆置。
  2. 整体流程:

    • 在main函数中,首先初始化两个链表L1和L2,分别通过头插法和尾插法创建链表。
    • 然后对L2进行插入和删除操作,对L1进行插入和删除操作。
    • 接着对L1和L2进行排序。
    • 之后创建一个新的链表MergeList,并将L1和L2合并到MergeList中。
    • 最后在MergeList中查找特定值,并对MergeList进行原地逆置操作。
    • 最后销毁所有链表,释放内存。

下列是我的代码演示

#include<bits/stdc++.h>
using namespace std;

#define MAXSIZE 100 
#define OVERFLOw -2
#define OK 1
#define ERROR 0

typedef int Status;
typedef int eleType;
typedef struct LNode {
	eleType data;
	struct LNode *next;
} LNode, *LinkList;

/*
初始化一个空链表							OK
链表的置空和销毁							OK
前插法建表、后插法建表						OK
能够在链表中实现元素的查找、插入和删除		OK
能够输出链表的全部元素						OK
链表元素的排序及有序链表的合并(选做)		OK
链表的原地逆置(选做)						OK
*/

//初始化一个空链表
Status LinkedListInit(LinkList &L){
	L = new LNode;
	if(!L) exit(OVERFLOw);
	L->next = NULL;
	return OK;
}

//链表的销毁
Status LinkedListDestroy(LinkList &L){
	while(L){
		LinkList temp = L;
		L = L->next;
		delete temp;
	}
	return OK;
}

//链表的置空
Status LinkedListClear(LinkList &L){
	LinkList p = L->next;
	while(p){
		LinkList temp = p;
		p = p->next;
		delete temp;
	}
	L->next = NULL;
	return OK;
}

//头 插 法
void LinkedListAddHead(LinkList &L,eleType value){
	LNode * newNode = new LNode;
	newNode->data = value;
	newNode ->next = L->next;
	L->next = newNode ;
}

//尾 插 法
void LinkedListAddTail(LinkList &L, eleType value) {
	LNode* p = L;
	LNode* newNode = new LNode;
	newNode->data = value;
	while (p->next!= NULL) {
		p = p->next;
	}
	newNode->next = p->next;
	p->next = newNode;
}

//按值查找
LNode * LinkedListFind(LinkList &L,eleType value) {
	LNode * p = L->next;
	int i = 1;
	while(p){
		if(p->data==value){
			cout<<"在链表中找到 "<<value<<",位置在第"<<i<<"个处"<<endl<<endl;
			return p;
		}
		p=p->next;
		i++;
	}
	cout<<"没找到"<<value<<endl<<endl;
	return p;
}

//按序号 插 入
Status LinkedListInsert(LinkList &L,int index,eleType value){
	LNode * p = L ;
	LNode * NewNode = new LNode;
	NewNode ->data = value;
	int i = 0;
	while(i<index-1){
		p = p->next;
		i++;
	}
	NewNode->next = p->next;
	p->next = NewNode;
	cout<<"成功将元素:"<<value<<"  插 在第 "<<index<<" 个元素处"<<endl;
	return OK;
}

//元素 删除 
Status LinkedListDelete(LinkList &L,int index){
	if (index == 0) {
		L->next = L->next->next;
		cout<<"成功 删除 第"<<index<<"个元素"<<endl;
		return OK;
	}
	int i = 0;
	LNode * p = L;
	while(i<index-1 && p->next){
		p = p->next;
		i++;
	}
	if(!(p->next) || i>index-1)    return ERROR;  
	LNode* temp = p->next;
	p->next = p->next->next;
	cout<<"成功 删除 第"<<index<<"个元素: "<<temp->data<<endl;
	delete temp;
	return OK;
}

//打印链表
void LinkedListPrint(LinkList &L){
	LNode* p = L->next;
	while(p){
		cout<<p->data<<"->";
		p = p->next;
	}
	cout<<"NULL"<<endl<<endl;
}

//链表的排序(冒泡排序)
void LinkedListSort(LinkList &L){
	if(L==NULL||L->next==NULL) return ;//没有元素或者只有一个元素
	bool swapped;//看是否完成交换 当swapped为false时代表排序OK
	LNode * ptr ;//游离 遍历 交换
	LNode * lptr = NULL;//已经交换过的
	do{
		//每一次排序把未排序过的最大的放到了最后面
		//更新指针为排好序的元素的头一个节点
		swapped = false;
		ptr = L->next;//从头节点开始
		while(ptr->next!=lptr)//不到最后一个未排序的元素
		{
			if(ptr->data > ptr->next->data){
				//交换
				eleType temp = ptr->next->data;
				ptr->next->data = ptr->data;
				ptr->data = temp;
				swapped = true;
			}
			ptr = ptr->next;
		}
		lptr = ptr;
	}while(swapped);
}

// 有序链表的合并
void LinkedListMerge(LinkList L1, LinkList L2, LinkList& result) {
	LNode* p1 = L1->next; // 指向 L1 头节点
	LNode* p2 = L2->next; // 指向 L2 头节点
	while (p1 && p2) {
		if (p1->data < p2->data) {
			LinkedListAddTail(result,p1->data);
			p1=p1->next;
		} else if (p2->data < p1->data) {
			LinkedListAddTail(result,p2->data);
			p2 = p2->next;
		} else {
			LinkedListAddTail(result,p1->data);
			p1 = p1->next;
			p2 = p2->next;
		}
	}
	while (p1) {
		LinkedListAddTail(result,p1->data);
		p1=p1->next;
	}
	while (p2) {
		LinkedListAddTail(result,p2->data);
		p2 = p2->next;
	}
}
//                               首节点↓
//链表的原地逆置(适用于带头节点 即 L->①->②->③->…->NULL)
//                           头节点↑
void LinkedListReverse(LinkList &L){
	LNode * beg = L->next;//首节点
	LNode * end = L->next->next;
	while(end!=NULL){
		beg->next = end->next;//连 连上后面的 以防调转的目标节点之后节点素丢失
		end->next = L->next;//掉 掉转的目标节点的后继指向目前的首节点(目标节点将成为新的首节点)
		L->next = end;//接 头节点的后继为新的首节点
		end = beg->next;//移 end始终是beg后面一个节点
	}
}
int main(){
	LinkList L1;
	LinkedListInit(L1);
	LinkedListAddHead(L1,1);
	LinkedListAddHead(L1,2);
	LinkedListAddHead(L1,3);
	LinkedListAddHead(L1,4);
	LinkedListAddHead(L1,5);
	cout<<"头 插 法得到L1 :"<<endl;
	LinkedListPrint(L1);
	
	LinkList L2;
	LinkedListInit(L2);
	LinkedListAddTail(L2,7);
	LinkedListAddTail(L2,6);
	LinkedListAddTail(L2,5);
	LinkedListAddTail(L2,4);
	LinkedListAddTail(L2,3);
	cout<<"尾 插 法得到L2 :"<<endl;
	LinkedListPrint(L2);
	
	cout<<"对L2进行操作: ";
	LinkedListInsert(L2,1,36);
	LinkedListPrint(L2);
	
	cout<<"对L2进行操作: ";
	LinkedListDelete(L2,4);
	LinkedListPrint(L2);
	
	cout<<"对L1进行操作: ";
	LinkedListInsert(L1,3,17);
	LinkedListPrint(L1);
	
	cout<<"对L1进行操作: ";
	LinkedListDelete(L1,3);
	LinkedListPrint(L1);
	
	LinkedListSort(L1);
	cout<<"排序后的 L1:";
	LinkedListPrint(L1);
	
	LinkedListSort(L2);
	cout<<"排序后的 L2:";
	LinkedListPrint(L2);
	
	cout<<"L1 L2 合并后 得 MergeList : "<<endl;
	LinkList MergeList ;
	LinkedListInit(MergeList);
	LinkedListMerge(L1,L2,MergeList);
	LinkedListPrint(MergeList);
	
	cout<<"对MergeList进行操作: ";
	LinkedListFind(MergeList,5);
	
	cout<<"MergeList 原地逆置后"<<endl;
	LinkedListReverse(MergeList);
	LinkedListPrint(MergeList);
	
	
	LinkedListDestroy(L1);
	LinkedListDestroy(L2);
	LinkedListDestroy(MergeList);
	
	return 0;
}

运行结果如下
在这里插入图片描述

C++: 实现双向链表(例题讲解) C++: 实现双向链表(例题讲解)标签: C++ 双向链表by 小威威这一周的实验题比较水,我就不总结了,而作业题中最有意思的就是实现双向链表这一道题。这道题和我们之前做的单向链表是同一种类型的,只是这一次是双向链表,需要实现的操作较多,可能产生的bug也比之前多。我个人觉得,打出这道题的代码不难,难是难在调试。(入门链表的可以参照我以前的一篇文档入门:链表的基本操作)题目如下:(Author: 阅读详情

相关推荐

C++作业学生信息管理系统(链表)

学生信息管理系统(链表) #include <iostream> #include <iomanip> #include <string.h> using namespace std; struct Student // 建立学生信息结构体 { char number[20]; char name[10]; float english; float math; float chinese; float average; Student *next; //

Moksha的博客 3930

【C++】顺序表,链表,栈的练习(千万要会做)每日小细节007

【C++】顺序表,链表,栈的练习(千万要会做)

weixin_71138261的博客 673

【操作系统实验】使用动态分区分配方式的模拟(c++实现)

目录实验目的实验内容代码运行结果思考 实验目的 了解动态分区分配方式中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。 实验内容 (1)用C语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程alloc( )和回收过程free( )。其中,空闲分区通过空闲分区链来管理:在进行内存分配时,系统优先使用空闲区低端的空间。 (2)假设初始状态下,可用的内存空间为640KB,并有下列的请求序列: 作业1申请130KB。 作业2申请60KB。 作业3申请100KB。 作业2释

mysql_67的博客 3963

C++ ——实现链表反转逆序

在B站上学习C++服务器开发,第一节课结束的时候老师布置了一个小作业——实现链表逆序 好久没有接触C++了,大一的时候学过,到了大三忘的差不多了,所以想重新学学。接触过Java和python之后回过来看C++,感觉c++好麻烦。 实现链表逆序,首先要有一个链表,下面是链表的结构体: typedef struct listnode { int data; struct...

bingocoder的博客 1万+

《数据结构》实验二:线性表综合实验——(2)单链表

《数据结构》实验二:                线性表综合实验一.实验目的     巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题。 二.实验时间   准备时间为第3周到第4周,具体集中实验时间为第4周第2次课。2个学时。 三..实验内容1.建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入...

hpnynljy的博客 1451

jane street market prediction 冠军方案 奇巧淫技与topline链接整理(3/3)

目录前言将income 作为loss(优化目标)读取数据,定义优化目标模型训练与微调提交结果多目标学习Topline整理AE+MLP (rank10)Current 17th solution: Ensembles of deep (49 layer) MLPsmixup augmentation: a way to learn from trades with weight=0 (rank4)My (perhaps) over-complicated LSTM solutionCurrent 62nd .

weixin_51484067的博客 2639

23作业2 c++基础2编程题7-8 单向链表3

7-8 单向链表3分数 10全屏浏览切换布局作者 wangxiu单位 福州大学编程实现:输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入一个正整数 n(0<n<=9)和一组(n个)升序的整数,建立单向链表,再输入一个整数 x,把 x 插入到这组数据中,使该组数据仍然有序。输入输出示例:括号内为说明。

Shaddock42125的博客 875

半导体制造技术导论(第二版)萧宏 第五章集成电路加热工艺答案

第二次退火是在较高温度下进行,并将电阻系数较高的c49碳化硅转变为电阻系数较低的c54碳。水平式高温炉加热、垂直式高温炉加热(即传统的管式炉加热)、快速加热工艺RTP、激光镭射。8. 集成电路芯片制造过程中,会使用垫底氧化层、阻挡氧化层、栅氧氧化层、屏蔽氧化层和全。氧化是最重要的加热过程之一,是一种添加工艺,将氧气加入到硅晶圆后,在晶圆表面形成二氧。为了满足元器件性能的要求,必须利用退火工艺将晶格的损伤修复,使其恢复单晶结构并激活掺。工艺氮气气流下将晶舟推入炉管,升高温度,稳定温度;

goal_achieving的博客 1863

C++之用链表实现大数的加减乘除

C++之用链表实现大数的加减乘除 1.前言 实现大数的加减乘除是今年寒假C++的大作业,原本我是用字符串写的,但是后来看作业要求要用链表实现,于是我不情不愿的用链表的实现了一遍 2.Num类 2.1Node类 首先是内部的一个Node类用于建立单向链表,size用于计算大小方便Num对象之间做比较 class Node { public: int val; Node*next; Node(int v, Node*n) { val = v; next = n;

watering6的博客 3478

深入浅出ASAP2标准:手把手教你编写和解析A2L文件(含Python示例代码)

本文深入解析ASAP2标准下的A2L文件,涵盖基础概念、文件结构及Python实现代码,帮助开发者掌握汽车ECU标定和测量中的关键数据管理技术。通过详细示例,展示如何编写和解析A2L文件,提升电控数据管理效率。

happy2的博客 1099

CMOS锁相环核心:四种鉴频鉴相器(PFD)结构深度剖析与选型指南

本文深入剖析了CMOS锁相环中四种鉴频鉴相器(PFD)的结构与性能,包括传统RS触发器型、非时钟型、预充电型和边沿触发型PFD。通过详细的电路分析、实测数据和工程案例,提供了PFD选型的实用指南,帮助工程师根据速度、功耗和精度需求选择最优方案,提升锁相环设计效率。

weixin_42530458的博客 586

实验2.3 运用双链表实现对数据的基本操作

一、实验目的 巩固线性表的数据结构的存储方法和相关操作, 学会针对具体应用, 使用线性表的相关知识来解决具体问题。 二、实验内容 建立一个由n个学生成绩的顺序表, n的大小由自己确定, 每一个学生的成绩信息由自己确定, 实现数据的对表进行插入、删除、查找等操作。分别输出结果。 三 、实验步骤

Vivien_wyx的博客 561

老款 NUC 复活计划:装 Ubuntu 部署 OpenClaw 本地 AI

老款 NUC 变身本地 AI 服务器指南 本文详细介绍了如何将老旧华硕 NUC 设备改造为本地 AI 服务器。主要内容包括: 硬件评估:列出老款 NUC 的最低配置要求(i3 6代/8GB内存/256GB SSD),并提供兼容性检查命令和性能预期表 系统准备:指导备份数据、下载 Ubuntu 22.04 LTS 和制作启动盘的方法(Windows/Linux双平台) 安装流程:从 BIOS 设置到 Ubuntu 安装的完整步骤,包括推荐的分区方案 系统优化:禁用不必要的服务、内核参数调优、Swap 配置和

博客 7607

【记录】【C++】【环形单向链表】【约瑟夫难题】【数据结构实验】(三)

目录一、实验作业相关要求二、源代码引用include部分定义结点类定义环形链表类构造与析构置为空表获取链表大小输出所有元素在特定位置插入元素后插一个元素 和 判空获取特定位置的元素和获取特定元素的第一个位置删除特定位置的结点获取头尾指针的引用定义方法类(仿照力扣)主函数部分三、作业提交的文档内容 一、实验作业相关要求 实验三 循环链表 1、实验目的与要求 1)熟悉循环链表的类型定义和基本操作; 2)灵活应用循环链表解决具体应用问题。 2、实验内容 有n个小孩围成一圈,给他们从1开始依次编号,从编号为1的

Mr_StrangeMind的博客 734

基于深度学习DNN LSTM网络的光伏发电量预测 完整代码数据 可直接运行

基于深度学习DNN LSTM网络的光伏发电量预测 完整代码数据 可直接运行

2079

Python爬虫实战:利用最新技术爬取抖音话题挑战视频

本文将详细介绍如何使用Python最新技术栈构建一个高效的抖音话题挑战视频爬虫。我们将从环境配置开始,逐步讲解请求模拟、数据解析、反反爬策略、数据存储等关键环节,并提供完整的代码实现。本文适合有一定Python基础的开发者学习高级网络爬虫技术。关键词:Python爬虫、抖音API、话题挑战、视频爬取、反反爬本文详细介绍了如何使用Python最新技术栈构建抖音话题挑战视频爬虫。我们从基础请求开始,逐步实现了数据解析、反反爬策略、数据存储等核心功能,并探讨了分布式和增量爬取等高级主题。更智能的反反爬策略。

2201_76125261的博客 1744

作业_纯虚函数的应用_继承_单向链表_员工信息

作业_纯虚函数的应用_继承_单向链表_员工信息 1 #include<iostream> 2 #include<cstring> 3 #include<string> 4 using namespace std; 5 6 class Object { ...

豆子 194

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

实验作业三:单链表

题目: 利用尾插法建立一个单链表,并从屏幕显示单链表元素列表;根据屏幕上的提示进行单链表的删除、插入等操作。 运行环境:Dev-C++ 5.11 下面是正式的代码,这里没有拆分成多个文件,直接堆在一起了。 /* 单链表程序 包含结构体: 1. 定义单链表结构(结点) 包含函数: 1. 获取链表的指定位置的结点 2. 创建一个单链表 3. 插入节点 4. 输出已有...

博客 1024

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

C/C++链表数据结构详解:从单向到双循环,核心操作与避坑指南

数据结构是计算机科学中组织与管理数据的核心基础,其中链表作为一种动态数据结构,通过指针将离散的结点在逻辑上串联,解决了数组在频繁插入删除时需整体移动数据的性能瓶颈。其原理在于每个结点包含数据域与指针域,通过修改指针引用即可在O(1)时间复杂度内完成增删,实现了高效的内存动态管理。这一特性在需要频繁数据变动的场景如实时通讯录、任务队列、LRU缓存中极具技术价值。本文聚焦链表在C/C++中的工程实现,深入剖析**内存管理**中malloc/free与new/delete的抉择、以及**指针操作**的顺序陷阱与空

weixin_34216196的博客 419

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

The first time:数据结构作业——自定义链表及其操作

#include #include using namespace std; template struct Node { Node *Rear_Node; Node *Front_Node; T Number; }; template class List_My {  public:  List_My(int Number); void in

u014750548的专栏 765

《数据结构》实验二:线性表综合实验——(3)双链表

《数据结构》实验二:                线性表综合实验一.实验目的     巩固线性表的数据结构的存储方法和相关操作,学会针对具体应用,使用线性表的相关知识来解决具体问题。 二.实验时间   准备时间为第3周到第4周,具体集中实验时间为第4周第2次课。2个学时。 三..实验内容1.建立一个由n个学生成绩的顺序表,n的大小由自己确定,每一个学生的成绩信息由自己确定,实现数据的对表进行插入...

hpnynljy的博客 478

C++实现顺序表操作(实验2—作业)

这段 C++代码实现了顺序表的初始化、插入、打印、置空、销毁、查找、删除、排序以及求并集、交集和差集等操作,并通过在主函数中对两个顺序表进行一系列操作来展示这些功能,最后还实现了在并集中查找特定元素的功能,并在结束时销毁了所有顺序表。可以使用指针来访问动态数组中的元素,通过重新分配内存来实现顺序表的操作。使用动态数组实现的顺序表的优点是可以动态调整大小,缺点是访问速度相对较慢。可以使用下标来访问数组中的元素,通过将元素插入或删除来实现顺序表的操作。在C++中,可以使用普通数组或者动态数组来实现顺序表。

ByteMaster_的博客 640

C++数据结构实训:作业管理程序实现与链表应用详解

数据结构是计算机科学的核心基础,它研究数据的组织、存储和操作方式,直接影响程序的效率和可维护性。其核心原理在于通过特定的逻辑结构(如线性表、树、图)和物理存储方式,优化数据的增删改查操作。掌握数据结构对于编写高性能、可扩展的软件至关重要,尤其在系统开发、算法优化等场景。线性表作为最基本的结构之一,在实现学生信息管理、缓存系统等实际应用时,常面临效率与复杂度的权衡。本文以“C++数据结构实训”为背景,聚焦“作业完成情况管理程序”这一典型教学项目,深入探讨如何运用链表等数据结构解决数据持久化、高效查询等工程问题

weixin_34296641的博客 442

单向链表——C++红书第七章课后习题~周末作业

创建链表 一般创建链表我们先使用typedef struct,这样定义结构体变量时,我们就可以直接可以用link *head;,定义结构体类型变量了。 //声明节点结构 typedef struct Link{ int elem; struct Link *next; //指向后继元素的指针 }link; 链表creat函数 link *creat() { link *head = ...

qq_45871768的博客 254

c语言程序设计 实验11.2,C语言程序设计 实验11.2_单向链表

仅供学习交流(希望大家不要应付作业)实验11.2 单向链表序号 题目名称 题目满分 题目得分 题目编号1 调试示例error11_3.cpp2 编程题3 编程题4 编程题5 编程题6 编程题1 调试示例error11_3.cpp/*----程序填空,不要改变与输入输出有关的语句。输入若干个学生的信息(学号、姓名、成绩),当输入学号为0时结束,用单向链表组织这些学生信息后,再按顺序输出。输入: ...

weixin_42184924的博客 487
上一篇: C++实现顺序表操作(实验2—作业)
下一篇: C++实现顺序栈和链栈操作(实验4--作业)
ByteMaster_
博客等级 码龄3年 328粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值