头歌实践教学平台数据结构与算法链式线性表——课上练
针对数据结构链式表在头歌平台练习过程中的完成代码,仅仅为作者一次通过(可能并未按照题目要求时间复杂度或空间复杂度),仍有较大优化空间,如有其他需求可留言。
#include <stdio.h>
#include <stdlib.h>
//第一关代码struct node
{//此处填写代码,定义链表结点类型,包含一个存放整型数据的 data 成员,和一个指向下一个结点的next成员int data;struct node *next;
};
typedef struct node *ph;
struct node *mycreateList()
{//此处填写代码,创建一个只有一个头结点的空链表,头节点的数据域赋值为0,并将表头结点的地址返回ph head = (ph)malloc(sizeof(struct node));head->data = 0;head->next = NULL;return head;}//第二关代码void myinsertHead(struct node * head, int insData )
{/*在此处完成任务,实现在head为表头d 链表的头插数据元素insData的功能*///beginph temp = (ph)malloc(sizeof(struct node));temp->data = insData;temp->next = head->next;head->next = temp;//end
}void myinsertTail(struct node * head , int insData )
{/*在此处完成任务,在head为表头的单链表表尾插入数据元素insData*///beginph p = head;while(p->next != NULL) p = p->next;ph temp = (ph)malloc(sizeof(struct node));temp->data = insData;temp->next = p->next;p->next = temp;//end
}void myprintList(struct node *L)
{/*在此处完成任务,输出head为表头链表中的数据,每输出一个数据换一行*///beginph p = L->next;while(p != NULL){printf("%d\n",p->data);p = p->next;}//end }//第三关代码void reverseList_link( struct node *L){//请在此处填入代码,实现链表逆置功能 //beginph p;p = L->next;L->next = NULL;while(p){ph q = p;p = p->next;q->next = L->next;L->next = q;}//end }//第四关代码
int locateAndChange( struct node *L, int data){//请在此处填入代码,在头结点为L的链表中查找 与data值相等的第一个结点,若能找到该结点,则将该结点的值与前驱结点的值交换//若未找到与data值相等的结点,则返回值为-1,若找到的结点无前驱结点,则返回值为0,否则返回值为前驱结点的值//beginph i = L;ph j = L->next;int res = 0;while(j != NULL){if(j->data == data){if(i == L) return 0;res = i->data;int temp = i->data;i->data = j->data;j->data = temp;break;}i = j;j = j->next;}return res;//end }//第五关代码
int destroyList(struct node *L)
{//请在此处填写代码,实现将链表L的结点空间回收//返回值为回收结点的个数,含头结点在内 ph p = L->next;ph m;int num = 0;while(p != NULL){num++;m = p;p = m->next;free(m); }return num + 1;
}
头歌实践教学平台数据结构与算法链式线性表——课上练相关推荐
- 头歌实践教学平台数据结构与算法:02线性表
针对数据结构02线性表在头歌平台练习过程中的完成代码,关卡数目较多,每题思路单独在每一关中解释.如有其他需求请留言. 第一关 可以把问题转换为:遍历B中的元素,如果该元素不在A中,则把该元素插入到A中 ...
- 头歌实践教学平台数据结构与算法:02线性表——反转链表(拓展)
针对数据结构02线性表--反转链表(拓展)在头歌平台练习过程中的完成代码,每题思路单独在每一关中解释.如有其他需求请留言. 第一关 已知一个带头结点的单链表L,将L反转并返回反转后的单链表.要求将L的 ...
- 头歌实践教学平台 MIPS CPU设计(HUST)
实验简介 本实训项目将帮助学生掌握 CPU 控制器设计的基本原理,能利用硬布线控制器的设计原理在 Logisim 平台中设计实现支持五条指令的 MIPS 单周期 CPU,该处理器能运行简单的内存冒泡排 ...
- 头歌实践教学平台上如何建项目且通过git上传
头歌实践教学平台上如何建项目且通过git上传 目标:在头歌上建立项目test,并通过git工具将文件上传至头歌中. (1) 首先在https://code.educoder.net/explore页面 ...
- 头歌实践教学平台-Linux网络实战(一)-DNS配置(Ubuntu系统)——保姆级教程
头歌实践教学平台-Linux网络实战(一)-DNS配置(Ubuntu系统) ***写在前面*** 知识补充 相关知识 实验环境准备 安装DNS服务器并开启服务 一.标题配置域名和IP的正解与反解zon ...
- 头歌实践教学平台答案(Java实训作业答案)
搜集整理了一份最新最全的头歌(EduCoder)Java实训作业答案,分享给大家.(EduCoder)是信息技术类实践教学平台.(EduCoder)涵盖了计算机.大数据.云计算.人工智能.软件工程.物 ...
- 头歌实践教学平台——计算机数据表示实验(HUST)
当你看到到这篇文章的时候,想必你已经被计算机组成原理实验折磨的不成样子了,没错我也是,经过我这几天的努力终于将这些实验一一完成. 我将源码放在压缩包里了,大家只需要复制代码,放进头歌里,满分过! 点击 ...
- 头歌实践教学平台——python程序设计——元组的使用
本关的编程任务是补全src/Step1/menu_test.py文件的代码内容,实现如下功能: 将输入的菜单menu_list转换为元组类型: 打印输出生成的元组: 打印输出元组中首字母最大的元素. ...
- 头歌实践教学平台软件工程答案
目录 面向数据流的设计方法-2 第1关:将数据流图转换为模块结构图-认识StarUML中的相关元素 相关知识 闯关要求 第2关:将数据流图转换为模块结构图-画出主模块 闯关要求 第3关:将数据流图转换 ...
最新文章
- 一些使用Vim的小技巧
- 使用 TensorFlow 的公司
- android中颜色参考
- python list列表排序的两种方法及实例讲解
- HTML如何实现利表自动求和,使用模板标记在html模板中求和
- python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及
- 4.12_proxy_结构型模式:代理模式
- 避坑指南!数据分析最容易被忽略的10个错误
- php stripcslashes 转义,stripcslashes()
- 【BZOJ 1026】 [SCOI2009]windy数
- activiti表单设计器_可拖拽的表单设计布局器-echarts-vue-jquery-可视化图表
- 清华大学操作系统OS学习(八)——虚拟存储概念
- arduino 写字机器人制作教程
- 科学计算IED--Anaconda软件基础操作
- MPB:使用QIIME 2分析微生物组16S rRNA基因扩增子测序数据(视频)
- ws office ppt基础知识
- 使用HTML5自制视频控件
- VGA、QVGA、CIF、QCIF 常用视频格式说明
- Eclipse Mac OS 安装中文简体语言包
- 防盗链技术及破解方法详细解析
热门文章
- centos 8.1.1911国内下载地址
- 移动端页面适配———多方案解析
- Camtasia 2023破解激活版免费下载附序列号激活码
- 【机器学习】新手必看的十种机器学习算法
- visual studio2012运行C++程序代码教程
- 王同学的科技周刊(第一期):七夕疯狂搞钱的年轻人,一周赚14万
- 蚂蚁区块链第16课 JS SDK数据模型(账户|合约|交易|收据|日志|区块)
- html图片渐变怎么实现,css实现背景图片渐变
- SSML语音合成标记语言详解
- 工作杂谈(六)——笔记本电池保护技巧