本文目录一览:
- 1、什么是头指针?头指针跟头结点有什么区别和联系?
- 2、数据结构java,头插法建立单链表,h为头结点,那p是结点还是指针?是结点的话怎么p.data?
- 3、用JAVA编写链表类,要求编写能够从头部添加节点。
什么是头指针?头指针跟头结点有什么区别和联系?
在线性表的链式存储结构中,头指针指链表的指针,若链表有头结点则是链表的头结点的指针,头指针具有标识作用,故常用头指针冠以链表的名字。头结点是为了操作的统一、方便而设立的,放在第一元素结点之前,其数据域一般无意义(当然有些情况下也可存放链表的长度、用做监视哨等等),有头结点后,对在第一元素结点前插入结点和删除第一结点,其操作与对其它结点的操作统一了。而且无论链表是否为空,头指针均不为空。首元结点也就是第一元素结点,它是头结点后边的第一个结点。
数据结构java,头插法建立单链表,h为头结点,那p是结点还是指针?是结点的话怎么p.data?
一个节点分为两个部分,一部分是自身的数据域,一部分是指向下一个节点的指针域。你想复杂了
public class Node {
public int data; //数据域
public Node next; //指针域,指向下一个节点
public Node(int data){
this.data=data;
}
}
用JAVA编写链表类,要求编写能够从头部添加节点。
public class ZLinkedList {
private int size;
private Node head;
public ZLinkedList(){
size = 0;
}
public void headInsert(Object obj){
//if(null== obj) {// do something}
Node temp = new Node(obj);
if(size ==0){
head = temp;
}else{
temp.setNext(head);
head = temp;
}
size++;
}
public void preOrder(){
int length = size;
Node temp = head;
for(int i= 0;i length;i ++){
System.out.println(temp.getValue());
temp = temp.getNext();
}
}
private static class Node{
private Object value;
private Node next;
Node(){
}
Node(Object val){
this.value = val;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
public static void main(String[] args) {
ZLinkedList test = new ZLinkedList();
test.headInsert("1");
test.headInsert("2");
test.headInsert("3");
test.preOrder();
}
}