题目描述

1.问题描述

给出初始数据,实现单链表的定义、创建、输出。

2.算法

单链表结点的存储结构包含两部分:数据、下一结点指针。

单链表的创建:输入n个数据e,若数据e不在单链表中,为数据e分配结点,并插入在单链表的尾部;若单链表中已有数据e,则不做任何操作。

单链表的输出:从头至尾遍历单链表,输出每个结点的元素值。

注:程序不可定义任何数组,否则不计成绩。

要求:查找定义子函数:int Find(Node *H,int e) //找到e返回1,找不到返回0。其中Node为链表结点结构体名,H为链表头指针。

输入

第一行:测试次数t

对每组测试数据,格式如下:

数据个数n 数据1 数据2 数据3 ... 数据n

输出

对每组测试数据,输出链表中元素个数和单链表中的全部数据。

样例输入

2
5 2 3 5 7 3
6 1 2 10 0 1 5

样例输出

4 2 3 5 7
5 1 2 10 0 5

代码实现:如下

//
// Created by HP on 2018/3/9.
//
#include <iostream>
using namespace std;
struct node{int num;node *next;
};
int c;
int find(node *head,int key)
{node *finder=head->next;while(finder!=NULL){if(finder->num==key)//如果想要插入的数据已经在链表中return  1;finder=finder->next;}return 0;
}
void CreateList(node *head)
{node *tail=head;int data;int n,i;cin>>n;for(i=0;i<n;i++){cin>>data;if(find(head,data)==0){node *s=new node;//创建新的节点s->num=data;s->next=NULL;tail->next=s;//将新结点插入链表中tail=s;c++;}}
}
void ShowList(node *head)
{cout<<c<<" ";node *display=head->next;while(display){c--;cout<<display->num<<" ";display=display->next;}cout<<endl;
}
int main()
{int t;cin>>t;while(t--){c=0;node *head=new node;head->next=NULL;CreateList(head);//创建ShowList(head);//输出}return 0;
}

单链表(带头结点)的创建相关推荐

  1. 单链表———带头结点跟不带头结点的区别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.单链表:带头结点跟不带头结点 二.使用步骤 总结 前言 数据结构中单链表的创建 带头结点跟不带头结点的区别 一.单 ...

  2. *循环单链表[带头结点]

    结构(带头结点) 初始化 创建(n个结点) 插入 删除 遍历 销毁 结构: 判空:(head->next==head) 初始化:主要注意链表为空的条件,执行语句:L->next=L; vo ...

  3. 数据结构:单链表——带头结点与不带头结点步骤详解

    单链表:带头结点与不带头结点详解 在本人的另一篇文章中,通过java实现了带头结点和不带头结点的单链表,有兴趣的小伙伴可以去看下数据结构(一):链表(Linked List) 这两天回顾下链表的知识, ...

  4. C语言单链表实现初始化、创建、增、删、查等基本操作(详细)

    C语言单链表实现初始化.创建.增.删.查等基本操作 #include <stdio.h> #include <stdlib.h> #include <malloc.h&g ...

  5. 写一个函数DeleteRange删除单链表中结点的值在low 和high之间的结点

    /*实验2 1. 写一个函数DeleteRange删除单链表中结点的值在low 和high之间的结点 (low和high的值是多少可自由设计).并且要在程序中验证其功能实现. (可在实验1的第3题的基 ...

  6. 狸猫换太子--删除无头单链表中结点

    狸猫换太子–删除无头单链表中结点 @(算法学习) 学习自<编程之美>. 很有意思的一种做法. 给定一个没有头指针的单链表,一个指针指向次单链表中的一个中间结点,删除此结点. 分析:这种根本 ...

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

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

  8. 数据结构c/c++ 头插法尾插法建立带头结点的单链表,以数组创建带头结点的单链表和不带头结点的单链表,输出打印单链表

    // // Created by 焦娇 on 2021/9/17. //#ifndef CHAPTER2_LINELINK_LLK_H #define CHAPTER2_LINELINK_LLK_H# ...

  9. 单链表的整表创建(头结点版)

    *****参照<大话数据结构>整理***** 一.基本要素概念明析 1.指针 指针也就是内存地址 ,指针变量是用来存放内存地址的变量(按照百度定义,进行下面的介绍) 2.结构体 结构体是C ...

  10. 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

最新文章

  1. caj文件打不开显示内存不足_caj打开文件内存不足 cad内存不足一键修复
  2. 科达南沙电子警察“扩编”
  3. 虚拟主机和托盘服务器,虚拟主机和托盘服务器
  4. 进程kswapd0与events/0消耗大量CPU的问题
  5. linux共享内存示例,linux 进程间共享内存示例
  6. JEECG 3.7 新装亮相,移动APP发布
  7. CDN行业“三足鼎立”格局已定,谁能代表未来?
  8. c# 对象json互相转换_Go语言进阶之路(六):内置JSON库和开源库gjson
  9. 4.1线程组(Thread Group)
  10. 正在搜索需要的文件_搜索电脑文件,只需要0.01s
  11. 什么是模型?什么是数学模型?
  12. html新建文件夹,javascript实现新建文件夹的功能
  13. deepin linux连接不上网络,把Deepin升级到15.8桌面版后无线上不了网的解决方法
  14. 权力的游戏字幕哪家强_使用权力游戏字幕
  15. 阿里云服务器ECS实例规格性能区别及选择攻略
  16. Win32编程基础知识
  17. SAP-SD-国家调整增值税,sap如何同步调整
  18. 机器学习实战_朴素贝叶斯分类器_预测疾病
  19. 百度地图MarkerClusterer点过多时卡顿问题
  20. [编程基础] Python谷歌翻译库googletrans总结

热门文章

  1. AI学习路线图(转)
  2. PPT之动作按钮和超链接
  3. 员工培训与开发实训心得体会_企业实训心得体会.doc
  4. 3G版iPad水货价普降最少200元 受新品发布冲击
  5. cypress 生成 report
  6. VR直播平台哪家好?都有哪些功能和应用?
  7. 探讨getchar与scanf的区别
  8. c语言中百分号点5d,c++语言中 百分号如何输出 如要求输出50%
  9. IDEA中查找java文件所在的文件位置
  10. AndroidUI组件之TabHost