本题实现链表的构造,采用表头插入法构造链表,输出表中所有元素。

函数接口定义:

函数接口:
ptr  creat( );//构造链表
void output(ptr p);//输出链表元素

其中 p 是用户传入的参数。creat函数返回链表的头指针,输入在creat函数中输入,以0表示输入结束。output函数输出链表元素,以一个空格隔开。

裁判测试程序样例:


#include <stdio.h>
#include <malloc.h>typedef struct node
{int data;struct node *next;
}snode,*ptr;ptr  creat( );//构造链表
void output(ptr p);//输出链表元素int main()
{ptr head;head=creat();output(head);return 0;
}/* 请在这里填写答案 */

输入样例:

1 2 3 0

结尾无空行

输出样例:

3 2 1 

结尾无空行

思路:采用表头插入法构造一个链表,然后输出

这一题我开始看到输入数据和输出数据的时候,我以为是要逆序输出,后来我才意识到表头插入法本来就是逆序的,所以这里直接输出即可

话不多说,上代码:

ptr  creat()//构造链表
{int x;ptr head,p;head=NULL;scanf("%d",&x);while(x!=0){p=(ptr)malloc(sizeof(snode));p->data=x;p->next=head;head=p;scanf("%d",&x);}return head;
}
void output(ptr p)//输出链表元素
{while(p!=NULL){printf("%d ",p->data);p=p->next;}
}

拓展:这里介绍一种逆序输出的代码,非常神奇的思路(递归方法):

void output(ptr head)
{if(NULL==head)
{return;
}if(head->next!=NULL)
{output(head->next);
}
printf("%d",head->data);
}

6-32 表头插入法构造链表相关推荐

  1. 【尾插法】表尾插入法构造链表 (10 分)

    本题实现链表的构造,采用表尾插入法构造链表,输出表中所有元素. 函数接口定义: 函数接口: ptr creat( )://构造链表 void output(ptr p);//输出链表元素 其中p 是用 ...

  2. 《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体

    准备一些链表和节点的实体,方便后面使用 java代码 /*** @Description:构造一个链表实体,方便后续构造链表* @Author: lizhouwei* @CreateDate: 201 ...

  3. 带表头节点单链表及其基本应用

    带表头节点单链表及其基本应用 结构体及其宏定义和所需要的C语言库 #include <stdio.h> #include <stdlib.h> #define ERROR 0 ...

  4. 已知一个带有表头的单链表,结点结构为data-link,假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。

    今天和大家分享一道2009年代码为408的一道真题: 已知一个带有表头的单链表,结点结构为data-link,假设该链表只给出了头指针list.在不改变链表的前提下,请设计一个尽可能高效的算法,查找链 ...

  5. C语言:用头插入法建立链表

    //头插入法建立带头结点的单链表 LinkList CreatList(void) {char ch[10];LinkList head, p;head=(LinkList)malloc(sizeof ...

  6. 32. Leetcode 141. 环形链表 (链表-双指针-环形链表)

    给你一个链表的头节点 head ,判断链表中是否有环.如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表 ...

  7. C语言实现带表头节点的链表

    数据结构及接口(Header_List.h) #ifndef HEADER_LIST_H_INCLUDED #define HEADER_LIST_H_INCLUDED#include <std ...

  8. HashMap在Jdk1.7和1.8中的实现

    Java集合类的源码是深入学习Java非常好的素材,源码里很多优雅的写法和思路,会让人叹为观止.HashMap的源码尤为经典,是非常值得去深入研究的,jdk1.8中HashMap发生了比较大的变化,这 ...

  9. 汇总:华为通用软件面试基础问题(java)(最新)

    1.Collection接口下有哪些子类? 1.1 集合和数组的区别 1.2 Collection和Map 1.3 Collection接口 1.4 集合的遍历方法 用迭代器迭代 Iterator i ...

最新文章

  1. vue+file-saver+xlsx导出table为excel
  2. Android性能优化之电量篇(四)
  3. wcf服务和寄主的关系
  4. C#实现最简单的收银系统
  5. 分布式版本控制系统Git的安装与使用
  6. Flutter 项目开发指导 从基础入门到精通使用目录
  7. BJFUOJ 1429
  8. Bootstrap 对齐方式
  9. Adjustment OfficeInput file
  10. OpenCV_连通区域分析(Connected Component Analysis-Labeling)
  11. 元素偏移量offset的学习
  12. 阿里1688产品图片和视频资料下载
  13. Android Studio清单文件合并规则
  14. 手撕内存拷贝函数 memmove、memcpy
  15. TortoiseGit-下载安装汉语语言包(汉化-方法)
  16. UE5 官方案例Lyra 全特性详解 10.进度汇报和视频推荐
  17. 面向对象设计之单一职责原则(Simple-Responsibility Principle)
  18. 8 赫斯曼网管软件industrial hivision多配置网络(软件升级和重启)
  19. 摒除一切封建迷信之递归并不难------排序2
  20. centos7下压缩包手动安装mysql以及设置开机自启动

热门文章

  1. RocketMQ实战2
  2. MySQL数据库的基础操作
  3. 基于Kubernetes构建企业容器云【入门实战篇】- 手动制作CA证书(二)
  4. Jetpack Room基本用法
  5. 基于uniapp的个人课程表
  6. 教你快速查询大量圆通快递单号的物流信息
  7. 几个有意思的逻辑数学题
  8. 增加检测类别?这是一份目标检测的基础指南
  9. Laravel SQL查询中first, pluck与lists方法
  10. Mac简单易用的复制软件——“TouchCopy”