import java.util.Scanner;class DATA{  //模拟一个班级的学生记录String key;String name;int age;}class SLType{static final int MAXLEN = 100;DATA[] ListData = new DATA[MAXLEN+1];    int ListLen;            //顺序表已存结点的数量void SLInit(SLType sl){sl.ListLen = 0;}int SLLength(SLType sl){return (sl.ListLen);}//插入节点int SLInsert(SLType SL,int n , DATA data){int i ;if(SL.ListLen>=MAXLEN){System.out.println("顺序表已满,不能插入节点");return 0;}if(n<1 || n>SL.ListLen-1){System.out.println("插入序号有误,不能插入节点");return 0;}//将顺序表中的数据向后移动for(i = SL.ListLen; i >=n ; i--){SL.ListData[i+1] = SL.ListData[i];}SL.ListData[n] = data;SL.ListLen++;return 1;}//追加节点int SLAdd(SLType SL,DATA data){if(SL.ListLen>=MAXLEN){System.out.println("顺序表已满,不能插入节点");return 0;}SL.ListData[++SL.ListLen]=data;return 1;}//删除节点int SLDelete(SLType SL,int n ){int i;if(n<1||n>SL.ListLen+1){System.out.println("序号输入有误,不能插入节点");return 0;}//往前挪for(i = n ; i<SL.ListLen;i++){SL.ListData[i] = SL.ListData[i+1];}SL.ListLen--;return 1;}//查找节点DATA SLFindByNum(SLType SL,int n){if(n<1||n>SL.ListLen+1){System.out.println("序号输入有误,不能插入节点");return null;}return SL.ListData[n];}//按照关键字查找节点int SLFindByCont(SLType SL,String key){int i;for(i = 1; i <= SL.ListLen ; i++){if(SL.ListData[i].key.compareTo(key)==0){return i;}}return 0;}//显示所有节点int SLAll(SLType SL){int i;for(i = 1; i <=SL.ListLen ; i++){System.out.println(SL.ListData[i].key+"#"+SL.ListData[i].name+"#"+SL.ListData[i].age);}return 0;}}public class SequentialList {public static void main(String[] args) {int i;SLType SL=new SLType();                 //定义顺序表变量
//          DATA data=new DATA();                  //定义结点保存数据类型变量DATA pdata;               //定义结点保存指针变量 String key;                //保存关键字System.out.print("顺序表操作演示!\n"); SL.SLInit(SL);                 //初始化顺序表 System.out.print("初始化顺序表完成!\n");Scanner input=new Scanner(System.in);do {                           //循环添加结点数据 System.out.print("输入添加的结点(学号 姓名 年龄):"); DATA data=new DATA();  data.key=input.next();data.name=input.next();data.age=input.nextInt();if(data.age!=0)               //若年龄不为0 {if(SL.SLAdd(SL,data)==0)   //若添加结点失败 {break;            //退出死循环 }}else                  //若年龄为0 {break;                 //退出死循环}}while(true);System.out.print("\n顺序表中的结点顺序为:\n");SL.SLAll(SL);                  //显示所有结点数据 System.out.print("\n要取出结点的序号:");i=input.nextInt();               //输入结占点序号    pdata=SL.SLFindByNum(SL,i);  //按序号查找结点 if(pdata!=null)                    //若返回的结点指针不为NULL{ System.out.printf("第%d个结点为:(%s,%s,%d)\n",i,pdata.key,pdata.name,pdata.age);}System.out.print("\n要查找结点的关键字:");key=input.next();             //输入关键字     i=SL.SLFindByCont(SL,key);     //按关键字查找 ,返回结点序号 pdata=SL.SLFindByNum(SL,i);   //按序号查询,返回结点指针 if(pdata!=null)                     //若结点指针不为NULL {System.out.printf("第%d个结点为:(%s,%s,%d)\n",i,pdata.key,pdata.name,pdata.age);  }}}

  

JAVA顺序表的简单实现相关推荐

  1. java 顺序表的实现_顺序表的简单实现(Java)

    采用Java实现数据结构中的顺序表 /** *Apr 15, 2013 *Copyright(c)JackWang *All rights reserve *@Author JackWang */ p ...

  2. Java顺序表就地逆置_顺序表的就地逆置问题

    问题描述:编写一个顺序表的成员函数,实现对顺序表就地逆置的操作.所谓逆置,就是把(a1,a2,a3,...,an)变成(an,an-1,..,a2,a1):所谓就地,即逆置后的数据元素仍在原来顺序表的 ...

  3. 数据结构C语言顺序表入门简单题目你会了吗?

    通常,线性表可以采取顺序存储和链式存储两种,今天我们来讨论下顺序存储结构以及其对应的实现算法. 采用顺序存储是表示线性表的最简单的方法,具体做法是:将线性表中的元素一个接一个地存储在一片相邻的存储区域 ...

  4. 利用顺序表建立简单图书管理系统

    采用线性表中的顺序储存方式,实现对书籍的增加,删除,查找,展示等基础功能. 基本知识点:顺序表的初始化,顺序表的查找,顺序表的插入以及顺序表的删除. #include <iostream> ...

  5. python代码大全表解释-python实现顺序表的简单代码

    顺序表即线性表的顺序存储结构.它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的.比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存 ...

  6. python顺序表代码_python实现顺序表的简单代码

    顺序表即线性表的顺序存储结构.它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的.比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存 ...

  7. java顺序表增删查改_Java实现顺序表的增删改查

    public class MyArrayList { private int[] array;   //代表的是存在数据的数组 //array.length代表的是数组的容量 private int ...

  8. python简单代码-python实现顺序表的简单代码

    顺序表即线性表的顺序存储结构.它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的.比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存 ...

  9. java顺序表冒泡排序_冒泡排序就这么简单 - Java3y的个人空间 - OSCHINA - 中文开源技术交流社区...

    冒泡排序就这么简单 在我大一的时候自学c语言和数据结构,我当时就接触到了冒泡排序(当时使用的是C语言编写的).现在大三了,想要在暑假找到一份实习的工作,又要回顾一下数据结构与算法的知识点了. 排序对我 ...

最新文章

  1. Opencv笔记(五)——把鼠标当画笔
  2. SQLserver 2000 重新安装挂起的解决方法
  3. 【基础】jquery全选、反选、全不选代码
  4. java开发paly框架下载_playframework框架笔记
  5. 无人车研发实力哪家强?Google只能排第十
  6. 【ArcGIS|3D分析】要素的立体显示
  7. stm32 SSI读编码器
  8. 推荐给大家一个恶搞代码,让你的好友电脑关机----关机代码
  9. 模糊C均值聚类算法---图像分割(python)
  10. 从faker.js 开源作者Marak已删除了GIthub所有代码我们得到了什么教训
  11. npm配置vue-cli所遇EACCES权限问题及解决方案
  12. 非典型文字描边效果的实现方法
  13. matlab计算miou值,深度学习计算机视觉图像分割领域指标mIoU(平均交并比)计算代码与逐行解析...
  14. Linux下磁盘配额设置
  15. Android 启动“无启动图标的 apk“
  16. 【图像处理】相机成像原理
  17. Lattice系列FPGA入门相关0(Lattice与Altera、Xilinx对比及入门)
  18. Stephen R.Schach《软件工程 面向对象和传统的方法》总结
  19. 用c语言编写代码:统计一个文本中出现次数最多的字符,写一个程序,统计一段文本中,出现次数最多的英文字母的数量,同字母大小写视为同字母 例子: wq...
  20. 小说网站用西部服务器,小说网站用什么虚拟主机

热门文章

  1. linux编程基础_第1篇 Linux系统编程 -多线程基础
  2. java异步调用第三方接口_Java调用第三方系统接口获取数据
  3. websvn mysql_Centos 5.3 Nginx+php+mysql配置 独立的 Subversion (SVN)服务器
  4. $.post把表单对象传递过去_第二章 第三节 Request请求对象详解
  5. Ubuntu 升级npm 以及安装cross-env 过程中遇到的问题
  6. Python3 系列之 编程规范篇
  7. C语言:一个数组中只有两个数字是出现一次
  8. MediaWiki使用指南
  9. Java Map hashCode深究
  10. 【转】svn的安装及与redmine的整合