(3)设置线性表的长度Setsize(nLen)用于缩小线性表的长度,当参数nlen错误时(nlen<o或者nlen>n),抛出相应的异常,若nlen等于原单链表长度,直接返回,否则找到序号为nlen-1的结点p,将其置为尾结点,使新单链表的长度为nlen。1/设置线性表的长度public void Setsize(int nlen)( int len=size();if(nlen<o//nlen>len)thrownewIllegalArgumentException("设置长度:n不在有效范围内");if (nlen==len) return;//找到序号为nlen-1的结点pLinkNode<E> p=geti(nlen-1);//将结点p置为尾结点p.next=null;716/85
public void Setsize(int nlen) //设置线性表的长度 { int len=size(); if (nlen<0 || nlen>len) throw new IllegalArgumentException("设置长度:n不在有效范围内"); if (nlen==len) return; LinkNode<E> p=geti(nlen-1); //找到序号为nlen-1的结点p p.next=null; //将结点p置为尾结点 } 用于缩小线性表的长度,当参数nlen错误时(nlen<0或者nlen>n),抛出 相应的异常,若nlen等于原单链表长度,直接返回,否则找到序号为nlen-1的 结点p,将其置为尾结点,使新单链表的长度为nlen。 16/85
(4)求线性表中序号为i的元素GetElem(i)//返回线性表中序号为i的元素public E GetElem(int i)int len=size();if (i<o i>len-1)throw new IllegalArgumentException("查找:位置i不在有效范围内");//找到序号为i的结点pLinkNode<E> p=geti(i);return(E)p.data;17/85
public E GetElem(int i) //返回线性表中序号为i的元素 { int len=size(); if (i<0 || i>len-1) throw new IllegalArgumentException("查找:位置i不在有效范围内"); LinkNode<E> p=geti(i); //找到序号为i的结点p return (E)p.data; } 17/85
(5)设置线性表中序号为i的元素SetElem(i,e)1/设置序号i的元素为epublic void SetElem(inti,Ee){ if (i<o ll i>size()-1)thrownewIllegalArgumentException("设置:位置i不在有效范围内");//找到序号为i的结点pLinkNode<E> p=geti(i);p.data=e;18/85
public void SetElem(int i,E e) //设置序号i的元素为e { if (i<0 || i>size()-1) throw new IllegalArgumentException("设置:位置i不在有效范围内"); LinkNode<E> p=geti(i); //找到序号为i的结点p p.data=e; } 18/85
(6)求线性表中第一个值为e的元素的逐辑序号GetNo(e)1/查找第一个为e的元素的序号public int GetNo(E e) int j=0;LinkNode<E>p=head.next;while(p!=null &&!p.data.equals(e))//查找元素e{ j++;p=p.next;71/未找到时返回-1if (p==null)return-1;1/找到后返回其序号else return j;A19/85
public int GetNo(E e) //查找第一个为e的元素的序号 { int j=0; LinkNode<E> p=head.next; while (p!=null && !p.data.equals(e)) { j++; //查找元素e p=p.next; } if (p==null) return -1; //未找到时返回-1 else return j; //找到后返回其序号 } 19/85
(7)交换线性表中序号i和序号j的元素swap(i,j)//交换序号和序号的元素public void swap(int i,int j)( LinkNode<E> p=geti(i);LinkNode<E>q=geti(j);E tmp=p.data;p.data=q.data;q.data=tmp;20/85
public void swap(int i,int j) //交换序号i和序号j的元素 { LinkNode<E> p=geti(i); LinkNode<E> q=geti(j); E tmp=p.data; p.data=q.data; q.data=tmp; } 20/85