Java队列链表

时间:2012-11-23 17:00:33

标签: java c linked-list queue

我正在尝试将以下内容转换为java。我创建了一个学生班,并使用LinkedList<Student> studentList.加入了StudentNode和Queue 如何在java中执行以下4项操作?

Student *studentPtr;
StudentNode *p;
1. p.student = studentPtr;
2. p.next = null;

Queue readyQueue;
3. readyQueue.head
4. readyQueue.tail

typedef struct{
   int age;


}Student;
struct my_struct
    {
      Student student;
      struct my_struct* next;
    }StudentNode;


struct my_list
{
  struct my_struct* head;
  struct my_struct* tail;
}Queue;

任何人都可以帮我将以下函数转换为java方法吗?

StudentNode *makeStudentNode(Student *stPtr)
{
    StudentNode *p = (StudentNode *)malloc(sizeof(StudentNode));

   p->student = stPtr;
   p->next = NULL;
   return p;
}

2 个答案:

答案 0 :(得分:1)

java.util.LinkedList已在库中提供,您可以使用它。

List<student> studList = new LinkedList<student>(); 
Student st = new Student();
st.setName("...");
studList.add(st);
...

答案 1 :(得分:1)

public class Student {
   int age;
}

而不是队列

List<Student> studentList;

在代码中,您将初始化by:

studentList = new ArrayList<Student>();

或者如果您希望更接近队列:

studentList = new LinkedList<Student>();

添加学生:

studentList.add(new Student(23));
studentList.add(new Student(19));

并删除第一个元素

studenList.remove(0);

如果将List定义为LinkedList:

LinkedList<Student> studentList;

然后你可以用

移除头部
studentList.remove();

您可以遍历所有学生:

for (Student student: studentList) {
   System.out.println(student.age);
}

或使用迭代器:

 for (Iterator<Student> iterator = studentList.iterator(); iterator.hasNext();) {
     Student student = iterator.next();
     System.out.println(student.age);
 }