링크 의 각종 조작 (자바 구현)
public boolean remove(Object e) {
SLNode p = getPreNode(e);
if(p!=null){
p.setNext(p.getNext().getNext());
size--;
return true;
}
return false;
}
2. 노드 삽입
삽입점 은 3 가지 로 나 뉜 다.
(1) 제 i 의 위치 에 삽입
public void insert(int i, Object e) throws OutOfBoundaryException {
if(i<0||i>size)
throw new OutOfBoundaryException(" , 。");
SLNode p = getPreNode(i);
SLNode q = new SLNode(e,p.getNext());
p.setNext(q);
size ++ ;
return;
}
(2) 지 정 된 요소 에 삽입 하기 전에
// e obj
public boolean insertBefore(Object obj, Object e) {
SLNode p = getPreNode(obj);
if(p!=null){
SLNode q = new SLNode(e,p.getNext());
p.setNext(q);
size ++;
return true;
}
return false;
}
(3) 지 정 된 요소 에 삽입 한 후
// e obj
public boolean insertAfter(Object obj, Object e) {
SLNode p = head.getNext();
while(p!=null){
if(strategy.equal(p.getData(),obj)){
SLNode q = new SLNode(e,p.getNext());
p.setNext(q);
size ++;
return true;
}
else p = p.getNext();
}
return false;
}
3. 링크 반전
(1) 반복
public SLNode Reverve(){
if(size<0){
throw new OutOfBoundaryException(" , ~");
}
SLNode pre = head.getNext();
SLNode cur = head.getNext().getNext();
head.getNext().setNext(null); // (
SLNode next;
while (null != cur) {
next = cur.getNext();
cur.setNext(pre); //
pre = cur;
cur = next;
}
head.setNext(pre); // pre head
return head;
}
(2) 、 재 귀 반전
private SLNode reverse(SLNode head)
{
if (null == head || null == head.getNext())
{
return head;
}
SLNode reversedHead = reverse(head.getNext());
head.getNext().setNext(head);
head.setNext(null);
return reversedHead;
}
public SLNode revers(){
SLNode p = head.getNext();
head.setNext(this.reverse(p));
return head;
}
마지막 보조 방법:
// : e
private SLNode getPreNode(Object e){
SLNode p = head;
while(p.getNext()!=null)
if(strategy.equal(p.getNext().getData(),e))return p;
else p = p.getNext();
return null;
}
설명:
strategy ( ),
오류 가 있 거나 개선 의견 이 있 으 시 면 제출 을 환영 합 니 다 ~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.