6-32 表头插入法构造链表
本题实现链表的构造,采用表头插入法构造链表,输出表中所有元素。
函数接口定义:
函数接口:
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 表头插入法构造链表相关推荐
- 【尾插法】表尾插入法构造链表 (10 分)
本题实现链表的构造,采用表尾插入法构造链表,输出表中所有元素. 函数接口定义: 函数接口: ptr creat( )://构造链表 void output(ptr p);//输出链表元素 其中p 是用 ...
- 《程序员代码面试指南》第二章 链表问题 构造链表和节点的实体
准备一些链表和节点的实体,方便后面使用 java代码 /*** @Description:构造一个链表实体,方便后续构造链表* @Author: lizhouwei* @CreateDate: 201 ...
- 带表头节点单链表及其基本应用
带表头节点单链表及其基本应用 结构体及其宏定义和所需要的C语言库 #include <stdio.h> #include <stdlib.h> #define ERROR 0 ...
- 已知一个带有表头的单链表,结点结构为data-link,假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。
今天和大家分享一道2009年代码为408的一道真题: 已知一个带有表头的单链表,结点结构为data-link,假设该链表只给出了头指针list.在不改变链表的前提下,请设计一个尽可能高效的算法,查找链 ...
- C语言:用头插入法建立链表
//头插入法建立带头结点的单链表 LinkList CreatList(void) {char ch[10];LinkList head, p;head=(LinkList)malloc(sizeof ...
- 32. Leetcode 141. 环形链表 (链表-双指针-环形链表)
给你一个链表的头节点 head ,判断链表中是否有环.如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环. 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表 ...
- C语言实现带表头节点的链表
数据结构及接口(Header_List.h) #ifndef HEADER_LIST_H_INCLUDED #define HEADER_LIST_H_INCLUDED#include <std ...
- HashMap在Jdk1.7和1.8中的实现
Java集合类的源码是深入学习Java非常好的素材,源码里很多优雅的写法和思路,会让人叹为观止.HashMap的源码尤为经典,是非常值得去深入研究的,jdk1.8中HashMap发生了比较大的变化,这 ...
- 汇总:华为通用软件面试基础问题(java)(最新)
1.Collection接口下有哪些子类? 1.1 集合和数组的区别 1.2 Collection和Map 1.3 Collection接口 1.4 集合的遍历方法 用迭代器迭代 Iterator i ...
最新文章
- vue+file-saver+xlsx导出table为excel
- Android性能优化之电量篇(四)
- wcf服务和寄主的关系
- C#实现最简单的收银系统
- 分布式版本控制系统Git的安装与使用
- Flutter 项目开发指导 从基础入门到精通使用目录
- BJFUOJ 1429
- Bootstrap 对齐方式
- Adjustment OfficeInput file
- OpenCV_连通区域分析(Connected Component Analysis-Labeling)
- 元素偏移量offset的学习
- 阿里1688产品图片和视频资料下载
- Android Studio清单文件合并规则
- 手撕内存拷贝函数 memmove、memcpy
- TortoiseGit-下载安装汉语语言包(汉化-方法)
- UE5 官方案例Lyra 全特性详解 10.进度汇报和视频推荐
- 面向对象设计之单一职责原则(Simple-Responsibility Principle)
- 8 赫斯曼网管软件industrial hivision多配置网络(软件升级和重启)
- 摒除一切封建迷信之递归并不难------排序2
- centos7下压缩包手动安装mysql以及设置开机自启动