资源简介
书中源程序代码.rar
代码片段和文件信息
package ch02;
/**
*
* 带头结点的循环链表及其基本操作类
*
*/
public class CirclelinkList implements IList {
public Node head;// 循环单链表的头指针
// 循环单链表的构造函数
public CirclelinkList() {
head = new Node(); // 初始化头结点
head.next=head;
}
// 将一个已经存在的带头结点的循环单链表置成空表
public void clear() {
head.next=head;
}
// 判断当前带头结点的循环单链表是否为空
public boolean isEmpty() {
return head.next.equals(head);
}
// 求带头结点的循环单链表中的数据元素个数并由函数返回其值
public int length() {
Node p = head.next;// 初始化p指向首结点length为计数器
int length = 0;
while (!p.equals(head)) {// 从首结点向后查找,直到p指向头结点
p = p.next;// 指向后继结点
++length;// 长度增1
}
return length;
}
// 读取带头结点的循环单链表中的第i个数据元素
public object get(int i) throws Exception {
Node p = head.next;// 初始化p指向首结点j为计数器
int j = 0;
while (!p.equals(head) && j < i) {// 从首结点向后查找,直到p指向第i个元素或p指向头结点
p = p.next;// 指向后继结点
++j;// 计数器的值增1
}
if (j > i || p.equals(head)) { // i小于0或者大于表长减1
throw new Exception(“第“ + i + “个元素不存在“);// 输出异常
}
return p.data;// 返回元素p
}
// 在带头结点的循环单链表中第i个数据元素之前插入一个值为x的数据元素
public void insert(int i object x) throws Exception {
Node p = head;// 初始化p为头结点j为计数器
int j = -1; // 第i个结点前驱的位置
while ((!p.equals(head) || j == -1) && j < i - 1) {// 寻找i个结点的前驱
p = p.next;
++j;// 计数器的值增1
}
if (j > i - 1 || (p.equals(head) && j != -1)) // i不合法
throw new Exception(“插入位置不合理“);// 输出异常
Node s = new Node(x); // 生成新结点
s.next=p.next;// 插入单链表中
p.next=s;
}
// 将循环单链表中第i个数据元素删除。其中i取值范围为:0≤i≤length()- 1如果i值不在此范围则抛出异常
public void remove(int i) throws Exception {
Node p = head;// p指向要删除结点的前驱结点
int j = -1;
while ((!p.next.equals(head) || j == -1) && j < i - 1) {// 寻找i个结点的前驱
p = p.next;
++j;// 计数器的值增1
}
if (j > i - 1 || (p.next).equals(head)) { // i小于0或者大于表长减1
throw new Exception(“删除位置不合理“);// 输出异常
}
p.next=p.next.next;// 删除结点
}
// 在带头结点的循环单链表中查找值为x的元素,如果找到,则函数返回该元素在线性表中的位置,否则返回-1
public int indexOf(object x) {
Node p = head.next;// 初始化p指向首结点j为计数器
int j = 0;
while (!p.equals(head) && !p.data.equals(x)) {// 从单链表中的首结点元素开始查找,直到p.data指向元素x或到达单链表的表尾
p = p.next;// 指向下一个元素
++j;// 计数器的值增1
}
if (!p.equals(head))// 如果p指向表中的某一元素
return j;// 返回x元素在顺序表中的位置
else
return -1;// x元素不在顺序表中
}
// 输出循环链表中的数据元素
public void display() {
Node node = head.next;// 取出带头结点的单链表中的首结点元素
while (!node.equals(head)) {
System.out.print(node.data + “ “);// 输出数据元素的值
node = node.next;// 取下一个结点
}
System.out.println();// 换行
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3738 2014-09-04 18:54 书中源程序代码\src\ch02\Circleli
文件 2489 2011-06-24 14:35 书中源程序代码\src\ch02\DebugCircleli
文件 2689 2011-06-24 14:35 书中源程序代码\src\ch02\DebugDuli
文件 2622 2011-06-24 14:35 书中源程序代码\src\ch02\Debugli
文件 2496 2011-06-24 14:35 书中源程序代码\src\ch02\Debugli
文件 2716 2012-01-18 20:41 书中源程序代码\src\ch02\DebugSqList.java
文件 4301 2014-07-23 23:52 书中源程序代码\src\ch02\Duli
文件 435 2014-07-23 23:13 书中源程序代码\src\ch02\DuLNode.java
文件 1023 2011-06-24 14:35 书中源程序代码\src\ch02\Example2_1.java
文件 920 2011-06-24 14:35 书中源程序代码\src\ch02\Example2_2.java
文件 807 2011-06-24 14:35 书中源程序代码\src\ch02\Example2_3.java
文件 1581 2014-09-04 16:58 书中源程序代码\src\ch02\Example2_4.java
文件 2416 2014-09-04 17:00 书中源程序代码\src\ch02\Example2_5.java
文件 1300 2011-06-24 14:35 书中源程序代码\src\ch02\IList.java
文件 6259 2014-09-04 16:52 书中源程序代码\src\ch02\li
文件 4339 2014-09-04 16:57 书中源程序代码\src\ch02\li
文件 421 2014-07-23 18:02 书中源程序代码\src\ch02\Node.java
文件 2086 2014-09-04 17:09 书中源程序代码\src\ch02\Polyn.java
文件 4050 2014-09-04 17:01 书中源程序代码\src\ch02\PolynList.java
文件 303 2014-07-24 00:28 书中源程序代码\src\ch02\PolynNode.java
文件 3955 2014-08-06 05:22 书中源程序代码\src\ch02\SqList.java
文件 5774 2014-07-24 23:44 书中源程序代码\src\ch02\StudentManagSystem.java
文件 840 2014-08-06 05:27 书中源程序代码\src\ch02\StudentNode.java
文件 2818 2011-06-24 14:35 书中源程序代码\src\ch02\SX1_SqList.java
文件 1022 2011-06-24 14:35 书中源程序代码\src\ch02Exercise\Exercise2_3_1.java
文件 962 2011-06-24 14:35 书中源程序代码\src\ch02Exercise\Exercise2_3_2.java
文件 1000 2011-06-24 14:35 书中源程序代码\src\ch02Exercise\Exercise2_3_3.java
文件 1075 2011-06-24 14:35 书中源程序代码\src\ch02Exercise\Exercise2_3_4.java
文件 1225 2011-06-24 14:35 书中源程序代码\src\ch02Exercise\Exercise2_3_5.java
文件 1274 2011-06-24 14:35 书中源程序代码\src\ch02Exercise\Exercise2_3_6.java
............此处省略166个文件信息
- 上一篇:基于LabVIEW的虚拟示波器的设计与实现
- 下一篇:用汇编语言做一个扫雷游戏
相关资源
- SSM到SpringBoot从零开发校园商铺平台
- OfficeLiteV4.1.7.txt.zip
- 一个简单的留言板设计.rar
- 网络摄像头恢复出厂的软件.zip
- ywhputx0802_4329276.zip
- 中南大学2009年线性系统理论考博真题
- 课程代码与工具.rar
- 27805c282f5942fad.zip
- txt文件和DataGridView控件的操作等.rar
- copy_imooc.zip
- qingdao.kml
- 28点fft.rar
- lwpm7z.zip
- MSMT17百度云地址.txt
- FactoryTalkViewStudio8.0授权.rar
- SVPWM的具体实现.rar
- grafana证书.zip
- 某峰前端架构视频.txt
- Spark从入门到精通(高级特性、案例实
- xiaotao_hit_10366747.zip
- sensi_words.txt
- home(黑冰美化版已恢复35689.zip
- SIMPACK2018.txt
- P2P文件共享程序.doc
- 软件设计师2005-2018年真题解析各版本
- QtDesigner快速入门.pdf
- xiangyueche_6572349.zip
- 解决GDAL读取SHP乱码问题.rar
- j0e2ql.rar
- 道客巴巴器.exe
评论
共有 条评论