대학원 결정 과 초보 계획 (링크 의 노드 류)
package comeon.feiqiang;
/**
* this class is for a Node Oprator
* include tow menber variables data and link
* with the methods provided,you can create a new IntNode with two parameters,
* create a new Node before the current Node,create a copy with head,create a copy with head and tail
* get
*
*/
public class IntNode {
public int data;
public IntNode link;
public IntNode(int initialData, IntNode initialLink) {
data = initialData;
link = initialLink;
}
public void addNodeBefore(int element) {
link = new IntNode(element, link);
}
/**
* @param head
* @return the head of the list
*/
public static IntNode listCopy(IntNode head) {
IntNode answer = null;
if (head == null) {
return null;
}
IntNode cursor = head;
answer = new IntNode(head.data, null);
IntNode tail = answer;
while (cursor.link != null){
cursor = cursor.link;
tail.link=new IntNode(cursor.data, tail.link);
tail = tail.link;
}
return answer;
}
/**
* @param IntNode
* source
* @return an array with the head and the tail of a copy of a source list
*/
public static IntNode[] copyWithDail(IntNode source) {
IntNode copyHead = null;
IntNode copyTail = null;
IntNode[] answer = new IntNode[2];
if (source == null) {
return answer;
}
copyHead = new IntNode(source.data, null);
copyTail = copyHead;
source = source.link;
while (source != null) {
copyTail.link = new IntNode(source.data, copyTail.link);
source = source.link;
copyTail = copyTail.link;
}
answer[0] = copyHead;
answer[1] = copyTail;
return answer;
}
/**
* @param head
* @return the length of the list
*/
public static int listLength(IntNode head) {
int answer = 0;
IntNode cursor = head;
while (cursor != null) {
answer++;
cursor = cursor.link;
}
return answer;
}
/**
*
* @param start
* @param end
* @return a copy of the current list from the start Node to the end Node
*/
public static IntNode[] listPart(IntNode start, IntNode end) {
IntNode copyHead = null;
IntNode copyTail = null;
IntNode answer[] = new IntNode[2];
if (start == null) {
throw new IllegalArgumentException("start is null");
}
if (end == null) {
throw new IllegalArgumentException("end is null");
}
copyHead = new IntNode(start.data, null);
copyTail = copyHead;
while (start != end) {
start = start.link;
if (start == null) {
throw new IllegalArgumentException(
"end node was not found on this list");
}
copyTail.link = new IntNode(start.data, copyTail.link);
copyTail = copyTail.link;
}
answer[0] = copyHead;
answer[1] = copyTail;
return answer;
}
/**
* @param head
* @param position
* @return the IntNode on the position
*/
public static IntNode listPosition(IntNode head, int position) {
if (position <= 0) {
throw new IllegalArgumentException("position is not positive");
}
IntNode cursor = head;
for (int i = 1; i < position && cursor != null; i++) {
cursor = cursor.link;
}
return cursor;
}
/**
* @param IntNode
* head
* @param IntNode
* target
* @return the IntNode at the data of target
*/
public static IntNode listSearch(IntNode head, int target) {
IntNode cursor = head;
while (cursor != null) {
if (cursor.data == target) {
return cursor;
}
cursor = cursor.link;
}
return null;
}
public static void print(IntNode head) {
IntNode cursor = head;
while (cursor != null) {
System.out.println(cursor.data);
cursor = cursor.link;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.