数据结构_第1章 链表.ppt
文本预览下载声明
数据结构;第一章;学习本科目的目的和意义(WHY):
掌握几种计算机语言是难以应付众多复杂的课题的。要想有效地使用计算机,还必须学习数据结构的有关知识
本科目在课程体系中地位
加强大家的编写效率高的程序
;科目目标:
掌握链表和堆栈
了解队列和查找
了解二叉树
了解排序
科目重难点章节:
链表和堆栈
队列和二叉树
;课程目标;本章的体验项目——大鱼吃小鱼;1.1链表的概念 ; 在本章中,我们将看到一种新的数据存储结构,它可以解决上面的一些问题,这种数据存储结构就是链表。 ;1.1.1节点 ; 下面的Node类定义了一个节点。它包含了一些数据和对下一个节点的引用 ; 这种类定义有时叫做“自引用”式,因为它包含了一个和自己类型相同的字段(本例中叫做next)。节点中仅包含两个数据项:一个int 类型的数据,一个 double 类型的数据。
在一个真正的应用程序中,可能包含更多的数据项。
例如,一条个人纪录可能有名字、地址、社会保险好、头衔、工资和其他许多字段。
通常,用一个包含这些数据的类的对象来代替这些数据项:;class Node
{
public Person person;
public Node next;
}
class Person
{
public name;
public age;
public sex;
} ;1.1.2链表的基本运算 ;1.2 链表的操作 ;1.2.2插入节点 ;插入节点的步骤;1.2.3删除节点 ;删除节点的原理;public boolean delNode(String nodeName)
{
Node p=head;
if(!p.hasNext())
{
System.out.println(此表为空);
return false;
}
while(p.hasNext())
{
if(p.getNext().getName().equals(nodeName))
{
p.setNext(p.getNext().getNext());
break;
}
p=p.getNext();
}
return true;
};在链表中做删除操作的优缺点;1.2.4按序号查找 ;Node node=head;
int i=0;
System.out.println(--------开始遍历--------);
while(node!=null)
{
if(i= =2)
{
System.out.println(“被查找的节点为:+node.getName());
break;
}
i++;
node=node.getNext();
} ;1.2.5定位 ;1.3其他链表 ;1.3.1循环链表 ;1.3.2双链表 ; 所有节点通过前趋引用和后继引用链接在一起,再加上起标识作用的头节点,就得到双向循环链表,简称双链表 ;双链表删除节点 ;双链表插入节点; 拓展 ;链表的遍历 ;LinkedList中常???的方法 ;小结
显示全部