2 qq 23477963 qq_23477963 于 2014.12.09 11:33 提问

怎样将一个数据存放在list的中间位置

我需要将一个数据存进list,需要放在中间,不知道list的最终长度,该怎么做

4个回答

ly601579033
ly601579033   2014.12.09 12:35
已采纳

是单向链表吗?如果是,那就定义两个指针,一个用来遍历(还用一个int length,随时记录遍历的长度),一个用来指向中间的数据.现在开始,
两个指针都指向list的头(length=0),第一个指针开始遍历(循环操作)——在循环里面,指针每后移一个,length就加1,当length%2==0时,
第二个指针就后移一个。当循环结束NULL时,第二个指针的下一个位置就是要插入数据的地方。

如果是数组?sizeof可以知道长度的。

双向的一样,循环链表就是结束的时候不一样(是否与第一个数据指针相等)

caozhy
caozhy   Ds   Rxr 2014.12.09 11:50

如果是链表,用InsertAt,否则只能复制一个新的列表,先复制前面一些元素,然后添加这个元素,再添加之后的元素。

caozhy
caozhy   Ds   Rxr 2014.12.09 11:54

用C#来写,代码就是
newlist = orglist.Take(n).Concat(new int[] { 数据 }).Concat(orglist.Skip(n)).ToList();

eagleyan
eagleyan   Rxr 2014.12.09 12:44

就是2个指针,一个一次1步,一个一次2步,第二个指针走到结束时,在第一个指针处插入

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!