@@ -25,7 +25,7 @@ class SLType{
2525## 初始化顺序表
2626在使用顺序表之前,首先要创建一个空的顺序表,即初始化顺序表。这里,只需设置顺序表的结点数量ListLen为0即可,并没有清空一个顺序表。这样,后面添加的数据元素将从顺序表的第一个位置存储,如果原来已有数据,也会后来的数据被覆盖。
2727``` java
28- void SLInit(SLType SL ){ // 初始化为空表
28+ void SLInit(SLType SL ){ // 初始化为空表
2929 SL . ListLen = 0 ;
3030}
3131```
@@ -39,9 +39,9 @@ int SLLength(SLType SL){ // 返回顺序表的元素数量
3939## 插入结点
4040插入结点就是在线性表L的第i个位置插入一个新的结点,使得其后的结点编号依次加1。
4141``` java
42- int SLInsert(SLType SL , int n, DATA data){ // 插入结点到顺序表中间的位置
42+ int SLInsert(SLType SL , int n, DATA data){ // 插入结点到顺序表中间的位置
4343
44- if (SL . ListLen >= MAXLEN ){ // 顺序表已满
44+ if (SL . ListLen >= MAXLEN ){ // 顺序表已满
4545 System . out. println(" 顺序表已满,不能插入结点!\n " );
4646 return 0 ;
4747 }
@@ -54,15 +54,15 @@ int SLInsert(SLType SL, int n, DATA data){ // 插入结点到顺序表中间的
5454 for (int i= SL . ListLen ;i>= n;i-- ){ // 将插入位置n后续的结点都向后移动一位
5555 SL . ListData [i+ 1 ]= SL . ListData [i];
5656 }
57- SL . ListData [n]= data; // 插入结点
58- SL . ListLen ++ ; // 顺序表节点数量加1
59- return 1 ; // 成功插入,返回1
57+ SL . ListData [n]= data; // 插入结点
58+ SL . ListLen ++ ; // 顺序表节点数量加1
59+ return 1 ; // 成功插入,返回1
6060}
6161```
6262## 追加结点
6363追加结点并不是一个基本的数据结构运算,其可以看作插入结点的一种特殊形式,相当于在顺序表的末尾新增一个数据结点。由于追加结点的特殊性,其代码实现比插入结点要简单,因为不必进行大量数据的移动。
6464``` java
65- int SLAdd(SLType SL , DATA data){ // 增加元素到顺序表尾部
65+ int SLAdd(SLType SL , DATA data){ // 增加元素到顺序表尾部
6666 if (SL . ListLen >= MAXLEN ){ // 顺序表已满
6767 System . out. println(" 顺序表已满,不能再添加结点!\n " );
6868 return 0 ;
@@ -76,12 +76,12 @@ int SLAdd(SLType SL, DATA data){ // 增加元素到顺序表尾部
7676``` java
7777int SLDelete(SLType SL , int n){ // 按位删除顺序表的结点
7878
79- if (n< 1 || n> SL . ListLen + 1 ){ // 删除结点序号不正确
79+ if (n< 1 || n> SL . ListLen + 1 ){ // 删除结点序号不正确
8080 System . out. println(" 删除结点序号错误,不能删除结点!\n " );
8181 return 0 ;
8282 }
8383
84- for (int i= n;i< SL . ListLen ;i++ ){ // 将插入位置n后续的结点都向前移动一位
84+ for (int i= n;i< SL . ListLen ;i++ ){ // 将插入位置n后续的结点都向前移动一位
8585 SL . ListData [i]= SL . ListData [i+ 1 ];
8686 }
8787 SL . ListLen -- ;
@@ -94,7 +94,7 @@ int SLDelete(SLType SL, int n){ // 按位删除顺序表的结点
94941)按照序号查找结点
9595按照序号查找结点是顺序表查找结点最常用的方法,这是因为顺序表的存储本身就是一个数组。
9696``` java
97- DATA SLFindByNum(SLType SL , int n){ // 根据序号返回数据元素
97+ DATA SLFindByNum(SLType SL , int n){ // 根据序号返回数据元素
9898
9999 if (n< 1 || n> SL . ListLen + 1 ){
100100 System . out. println(" 结点序号错误,不能返回结点!\n " );
@@ -107,7 +107,7 @@ DATA SLFindByNum(SLType SL, int n){ // 根据序号返回数据元素
107107关键字可以是数据元素结构中的任意一项
108108``` java
109109int SLFindByKey(SLType SL , String key){ // 按关键字查询结点
110- for (int i = 1 ; i <= SL . ListLen ; i++ ) { // 搜寻整个顺序表,返回和key匹配的结点
110+ for (int i = 1 ; i <= SL . ListLen ; i++ ) { // 搜寻整个顺序表,返回和key匹配的结点
111111 if (SL . ListData [i]. key. compareTo(key)== 0 ){
112112 return i;
113113 }
@@ -118,7 +118,7 @@ int SLFindByKey(SLType SL, String key){ // 按关键字查询结点
118118## 显示所有结点
119119打印线性表中的所有数据元素
120120``` java
121- int SLALL (SLType SL ){ // 显示顺序表中的所有结点
121+ int SLALL (SLType SL ){ // 显示顺序表中的所有结点
122122
123123 for (int i= 1 ; i<= SL . ListLen ; i++ ){
124124 System . out. printf(" (%s,%s,%d)\n " , SL . ListData [i]. key, SL . ListData [i]. name, SL . ListData [i]. age);
0 commit comments