数据结构

//=====================程序描述==================
//程序名称:linked03.java
//程序目的:演示单链表的存入和读取
//作者: 梁承祝
//=====================程序描述==================

public class Test
{
public static void main(String args[])
{
Student stu=new Student();
stu.add("张三");
stu.add("李四");
stu.add("王五");
stu.add("周六");

String[] names=stu.getNames();

for(int i=0;i<names.length;i++)
{
System.out.print(names[i]+"\t");
}
System.out.println();

System.out.println("一共有"+stu.getSize()+"条数据!");
System.out.println();

//按链表顺序打印数据
Node header=stu.getHeader();
while(header!=null)
{
System.out.print(header.name+"\t");
header=header.next;
}

System.out.println();
}
}

class Node
{
String name;
Node next;

public Node(String name)
{
this.name=name;
next=null;
}

public Node(String name, Node next)
{
this(name);
this.next=next;
}
}

class Student
{
//链表头指针
private Node header;

//链表的插入操作
public void add(String name)
{
Node p;
if (header==null) //向空链表中加入结点
header=new Node(name);
else {

for(p=header;p.next!=null;p=p.next);
p.next=new Node(name);
}
}

//取表长
public int getSize()
{
Node p;
int counter;
for(counter=0, p=header;p!=null;p=p.next)
counter++;
return counter;
}

//设置头指针的位置
public void setHeader(Node header)
{
if (header!=this.header)
this.header=header;
}

//取头指针
public Node getHeader()
{
return header;
}

//取所有姓名
String[] getNames()
{
int i;
Node p;
int length=getSize();
String[] names=new String[length];
for(i=0, p=header;p!=null;p=p.next)
{
names[i]=p.name;
i++;
}
return names;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值