这是添加项目的方法:
public void insert (Object item)
{
Link add = new Link();
add.data = item;
add.next = head;
_head = add;
++_listsize;
}
但是如何在给定位置添加项目。到目前为止,这就是我得到的:
public void insert (Object item, int pos)
{
Link add = new Link();
int ix = pos - 1;
add.next = _head;
for (int i = _listsize - 1; i >= ix; --i)
add = add.next;
add.data = item;
_head = add;
++_listsize;
}
如果项目是连续的,这将正确插入项目,但假设我给出了一个位于中间的位置,它将执行的操作将插入项目,但它将完全切断(或删除其余部分)。例如:
在 1 处插入:
A
在 2 处插入:
乙
A
在 3 处插入:
C
乙
A
在 2 处插入:
d
A
你应该做这样的事情:
public void insert (Object item, int pos)
{
Link add = new Link();
int ix = pos - 1;
Link cur = _head;
for (int i = 0; i < _list_size; i++) {
if(i == ix) {
add.next = cur.next;
cur.next = add;
}
cur = cur.next;
}
++_listsize;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)