• 大小: 0.33M
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-01
  • 语言: 其他
  • 标签: 其他  

资源简介

书中源程序代码.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\CirclelinkList.java

     文件       2489  2011-06-24 14:35  书中源程序代码\src\ch02\DebugCirclelinkList.java

     文件       2689  2011-06-24 14:35  书中源程序代码\src\ch02\DebugDulinkList.java

     文件       2622  2011-06-24 14:35  书中源程序代码\src\ch02\DebuglinkList.java

     文件       2496  2011-06-24 14:35  书中源程序代码\src\ch02\DebuglinkList2.java

     文件       2716  2012-01-18 20:41  书中源程序代码\src\ch02\DebugSqList.java

     文件       4301  2014-07-23 23:52  书中源程序代码\src\ch02\DulinkList.java

     文件        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\linkList.java

     文件       4339  2014-09-04 16:57  书中源程序代码\src\ch02\linkList2.java

     文件        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个文件信息

评论

共有 条评论