针对数据结构链式表在头歌平台练习过程中的完成代码,仅仅为作者一次通过(可能并未按照题目要求时间复杂度或空间复杂度),仍有较大优化空间,如有其他需求可留言。

#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;
}

头歌实践教学平台数据结构与算法链式线性表——课上练相关推荐

  1. 头歌实践教学平台数据结构与算法:02线性表

    针对数据结构02线性表在头歌平台练习过程中的完成代码,关卡数目较多,每题思路单独在每一关中解释.如有其他需求请留言. 第一关 可以把问题转换为:遍历B中的元素,如果该元素不在A中,则把该元素插入到A中 ...

  2. 头歌实践教学平台数据结构与算法:02线性表——反转链表(拓展)

    针对数据结构02线性表--反转链表(拓展)在头歌平台练习过程中的完成代码,每题思路单独在每一关中解释.如有其他需求请留言. 第一关 已知一个带头结点的单链表L,将L反转并返回反转后的单链表.要求将L的 ...

  3. 头歌实践教学平台 MIPS CPU设计(HUST)

    实验简介 本实训项目将帮助学生掌握 CPU 控制器设计的基本原理,能利用硬布线控制器的设计原理在 Logisim 平台中设计实现支持五条指令的 MIPS 单周期 CPU,该处理器能运行简单的内存冒泡排 ...

  4. 头歌实践教学平台上如何建项目且通过git上传

    头歌实践教学平台上如何建项目且通过git上传 目标:在头歌上建立项目test,并通过git工具将文件上传至头歌中. (1) 首先在https://code.educoder.net/explore页面 ...

  5. 头歌实践教学平台-Linux网络实战(一)-DNS配置(Ubuntu系统)——保姆级教程

    头歌实践教学平台-Linux网络实战(一)-DNS配置(Ubuntu系统) ***写在前面*** 知识补充 相关知识 实验环境准备 安装DNS服务器并开启服务 一.标题配置域名和IP的正解与反解zon ...

  6. 头歌实践教学平台答案(Java实训作业答案)

    搜集整理了一份最新最全的头歌(EduCoder)Java实训作业答案,分享给大家.(EduCoder)是信息技术类实践教学平台.(EduCoder)涵盖了计算机.大数据.云计算.人工智能.软件工程.物 ...

  7. 头歌实践教学平台——计算机数据表示实验(HUST)

    当你看到到这篇文章的时候,想必你已经被计算机组成原理实验折磨的不成样子了,没错我也是,经过我这几天的努力终于将这些实验一一完成. 我将源码放在压缩包里了,大家只需要复制代码,放进头歌里,满分过! 点击 ...

  8. 头歌实践教学平台——python程序设计——元组的使用

    本关的编程任务是补全src/Step1/menu_test.py文件的代码内容,实现如下功能: 将输入的菜单menu_list转换为元组类型: 打印输出生成的元组: 打印输出元组中首字母最大的元素. ...

  9. 头歌实践教学平台软件工程答案

    目录 面向数据流的设计方法-2 第1关:将数据流图转换为模块结构图-认识StarUML中的相关元素 相关知识 闯关要求 第2关:将数据流图转换为模块结构图-画出主模块 闯关要求 第3关:将数据流图转换 ...

最新文章

  1. 一些使用Vim的小技巧
  2. 使用 TensorFlow 的公司
  3. android中颜色参考
  4. python list列表排序的两种方法及实例讲解
  5. HTML如何实现利表自动求和,使用模板标记在html模板中求和
  6. python内置高阶函数求导_Python——函数式编程、高阶函数和内置函数,及
  7. 4.12_proxy_结构型模式:代理模式
  8. 避坑指南!数据分析最容易被忽略的10个错误
  9. php stripcslashes 转义,stripcslashes()
  10. 【BZOJ 1026】 [SCOI2009]windy数
  11. activiti表单设计器_可拖拽的表单设计布局器-echarts-vue-jquery-可视化图表
  12. 清华大学操作系统OS学习(八)——虚拟存储概念
  13. arduino 写字机器人制作教程
  14. 科学计算IED--Anaconda软件基础操作
  15. MPB:使用QIIME 2分析微生物组16S rRNA基因扩增子测序数据(视频)
  16. ws office ppt基础知识
  17. 使用HTML5自制视频控件
  18. VGA、QVGA、CIF、QCIF 常用视频格式说明
  19. Eclipse Mac OS 安装中文简体语言包
  20. 防盗链技术及破解方法详细解析

热门文章

  1. centos 8.1.1911国内下载地址
  2. 移动端页面适配———多方案解析
  3. Camtasia 2023破解激活版免费下载附序列号激活码
  4. 【机器学习】新手必看的十种机器学习算法
  5. visual studio2012运行C++程序代码教程
  6. 王同学的科技周刊(第一期):七夕疯狂搞钱的年轻人,一周赚14万
  7. 蚂蚁区块链第16课 JS SDK数据模型(账户|合约|交易|收据|日志|区块)
  8. html图片渐变怎么实现,css实现背景图片渐变
  9. SSML语音合成标记语言详解
  10. 工作杂谈(六)——笔记本电池保护技巧