首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

链表 总结

2012-11-09 
链表 小结public void add(int index, Object object) { // 创建对应元素的结点LinkNode temp new LinkN

链表 小结

public void add(int index, Object object) { // 创建对应元素的结点LinkNode temp = new LinkNode(object);// 判断是否索引越界if (index > getSize() || index < 0) {// 抛出运行时错误throw new RuntimeException("索引越界" + "size:" + getSize()+ "; index:" + index);} else if (head == null) {head = temp;foot = head;} else if (index == getSize()) {// 如果所需添加的对象到链表最后foot.setChildren(temp);temp.setParent(foot);foot = temp;} else if (index == 0) {// 如果所需添加的对象到链表最前temp.setChildren(temp);head.setParent(temp);head = temp;} else {// 获取插入位置的父节点和字节点LinkNode node = get(index);LinkNode fnode = node.getParent();// 重新设定关系temp.setParent(fnode);fnode.setChildren(temp);temp.setChildren(node);node.setParent(temp);}}

public void printLinkList() {// 递归算法// if (root != null) { Object date = root.getObj();// System.out.println(date); LinkNode temp = root.getNext();// printLinkList(temp); }// 循环输出LinkNode node = head;while (node != null) {System.out.println(node.getObj());node = node.getChildren();}}

??

?

?

public int contain(LinkNode node) {int index = 0;LinkNode temp = head;// 获得链表头while (temp != null) {// 判断是否为空if (temp.getObj().equals(node.getObj())) {// 判断是否相等return index;// 返回索引} else {index++;temp = temp.getChildren();}}return -1;// 没找到则返回-1}

?

?

热点排行