问题描述
- 怎样将一个数据存放在list的中间位置
-
我需要将一个数据存进list,需要放在中间,不知道list的最终长度,该怎么做
解决方案
是单向链表吗?如果是,那就定义两个指针,一个用来遍历(还用一个int length,随时记录遍历的长度),一个用来指向中间的数据.现在开始,
两个指针都指向list的头(length=0),第一个指针开始遍历(循环操作)——在循环里面,指针每后移一个,length就加1,当length%2==0时,
第二个指针就后移一个。当循环结束NULL时,第二个指针的下一个位置就是要插入数据的地方。
如果是数组?sizeof可以知道长度的。
双向的一样,循环链表就是结束的时候不一样(是否与第一个数据指针相等)
解决方案二:
如果是链表,用InsertAt,否则只能复制一个新的列表,先复制前面一些元素,然后添加这个元素,再添加之后的元素。
解决方案三:
用C#来写,代码就是
newlist = orglist.Take(n).Concat(new int[] { 数据 }).Concat(orglist.Skip(n)).ToList();
解决方案四:
就是2个指针,一个一次1步,一个一次2步,第二个指针走到结束时,在第一个指针处插入
时间: 2024-11-17 01:51:23