把一个list里的元素增加到另一个list中

把一个list里的元素增加到另一个list中,第1张

方式一:

ArrayList B = new ArrayList<>(A)

方式二:

ArrayList B = A.clone()

方式三:

ArrayList B = new ArrayList<String>()B.addAll(A)

方式四:

for(String s: A)B.add(s)

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

向一个空顺序线性表中存入一系列数据元素

#include <stdio.h>

#include <stdlib.h>

/*

 1.创建结构体-----具体事物的抽象

 2.创建链表

 3.创建结点

 4.插入 *** 作

  4.1 表头插入

  4.2 表尾插入

  4.3 指定位置插入(指定位置的前面)

 5.删除 *** 作

  5.1 表头删除

  5.2 表尾删除

  5.3 指定位置删除

 6.判断是否为空

 7.打印链表

*/

//单链表的结构体

typedef struct SingleList

{

 //数据域

 int data //以这个数据为例

 //struct MM  myMM

 //指针域

 struct SingleList *next

}LIST,*LPLIST

/*

 别名:习惯大写

 起别名---小名

 //好处:单词少,好看(含义更精简)

 struct SingleList  换一种叫法:  LIST

 strcut SingleList *  换一种叫法: LPLIST

*/

//------->2.创建链表  ---任何结构都需要用一个东西去表示

LPLIST CreateList()

{

 //创建过程就是初始化过程---初始化基本数据成员过程

 //需要内存空间

 LPLIST List = (LPLIST)malloc(sizeof(LIST))

 if (List == nullptr)

 {

  printf("失败了\n")

  system("pause")

  exit(0)

 }

 //初始化基本数据成员----有表头的链表

 List->next = nullptr

 return List

}

//------->3.创建结点  

LPLIST CreateNode(int data)

{

 //1.需要内存

 LPLIST Node = (LPLIST)malloc(sizeof(LIST))

 //2.初始化基本数据成员

 Node->data = data  //和创建链表多了数据域

 Node->next = nullptr

 return Node

}

//------->4.1 头插法

//函数写法:形参可以表示要 *** 作的东西

//插入的链表是(List),插入的数据是多少(data)

void InsertListHeadNode(LPLIST List,int data)

{

 //插入:创建插入的结点

 LPLIST newNode = CreateNode(data)  //创建结点

 //插入 *** 作

 newNode->next = List->next

 /*

  c=1

  b=2

  a=c

  c=b

 */

 List->next = newNode

}

//------->4.2 尾插法

void InsertListTailNode(LPLIST List, int data)

{

 //找到表尾--->定义一个移动的指针

 LPLIST tailNode = List

 while (tailNode->next != nullptr)

 {

  tailNode = tailNode->next

 }

 //创建插入的结点

 LPLIST newNode = CreateNode(data)

 tailNode->next = newNode

}

//------->4.3 指定位置

void InsertListAppoinNode(LPLIST List, int data, int PosData)

{

 //创建两个移动的指针:去找指定位置和指定位置的前面

 LPLIST frontNode = List

 //frontNode->next==taiNode:判断相邻

 LPLIST tailNode = List->next

 //判断是否为空

 while (tailNode->data != PosData)

 {

  /*

  frontNode=frontNode->next

  tailNode=tailNode->next

  */

  frontNode = tailNode

  tailNode = frontNode->next

  if (tailNode == nullptr)

  {

   printf("未找到指定位置\n")

   system("pause")

   exit(0)

  }

 }

 //tailNode->data=data

 //找到后创建插入的结点

 LPLIST newNode = CreateNode(data)

 frontNode->next = newNode

 newNode->next = tailNode

}

 

//------->5.判断是否为空

  //和创建的时候比较

int  IsEmptyList(LPLIST List)

{

 if (List->next == nullptr)

  return 1  //返回1表示为空

 return 0   //表示不为空

}

////------->6.打印数据

void PrintList(LPLIST List)

{

 if (IsEmptyList(List))

 {

  printf("链表为空,无法打印")

  system("pause")

  exit(0)

 }

 LPLIST pNext = List->next

 while (pNext != nullptr)

 {

  printf("%d\t", pNext->data)

  pNext = pNext->next

 }

 printf("\n")

}

//------->7.删除

  //头删除

void DeleteListHeadNode(LPLIST List)

{

 if (IsEmptyList(List))

 {

  printf("链表为空,无法删除\n")

  system("pause")

  exit(0) 

 }

 LPLIST DNode = List->next

 List->next = DNode->next

 free(DNode)

 DNode = nullptr

}

//------->8.尾删

void DeleteListTailNode(LPLIST List)

{

 if (IsEmptyList(List))

 {

  printf("链表为空,无法删除\n")

  system("pause")

  exit(0)

 }

 //找到表尾--->定义一个移动的指针

 LPLIST tailNode = List->next

 LPLIST tailFront = List

 while (tailNode->next != nullptr)

 {

  tailFront = tailNode

  tailNode = tailFront->next

 }

 tailFront->next = nullptr

 free(tailNode)

}

//------->9.指定位置删除

void DeleteListAppoinNode(LPLIST List, int PosData)

{

 //创建两个移动的指针:去找指定位置和指定位置的前面

 LPLIST frontNode = List

 //frontNode->next==taiNode:判断相邻

 LPLIST tailNode = List->next

 //判断是否为空

 while (tailNode->data != PosData)

 {

  /*

  frontNode=frontNode->next

  tailNode=tailNode->next

  */

  frontNode = tailNode

  tailNode = frontNode->next

  if (tailNode == nullptr)

  {

   printf("未找到指定位置\n")

   system("pause")

   exit(0)

  }

 }

 frontNode->next = tailNode->next

 free(tailNode)

}

 

int main()

{

 LPLIST List = CreateList()  //List创建成功

 printf("插入:\n")

 InsertListHeadNode(List, 1)

 InsertListHeadNode(List, 2)

 InsertListHeadNode(List, 3)

 InsertListTailNode(List, 0)

 PrintList(List)

 printf("删除:\n")

 DeleteListHeadNode(List)

 PrintList(List)

 DeleteListTailNode(List)

 PrintList(List)

 printf("指定位置:\n")

 //看不懂,可以找群主

 InsertListAppoinNode(List, 4, 2)

 InsertListAppoinNode(List, 3, 2)

 //C/C++ 8群

 PrintList(List)

 // 491994603

 DeleteListAppoinNode(List, 2)

 PrintList(List)

 system("pause")

 return 0

}

向一个空顺序线性表中存入一系列数据元素,我使用了多种插入方式,而对你来说只需要其中一种方式,通过循环的方式去插入就好了.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11847765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存