JAVA顺序表的简单实现
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顺序表的简单实现相关推荐
- java 顺序表的实现_顺序表的简单实现(Java)
采用Java实现数据结构中的顺序表 /** *Apr 15, 2013 *Copyright(c)JackWang *All rights reserve *@Author JackWang */ p ...
- Java顺序表就地逆置_顺序表的就地逆置问题
问题描述:编写一个顺序表的成员函数,实现对顺序表就地逆置的操作.所谓逆置,就是把(a1,a2,a3,...,an)变成(an,an-1,..,a2,a1):所谓就地,即逆置后的数据元素仍在原来顺序表的 ...
- 数据结构C语言顺序表入门简单题目你会了吗?
通常,线性表可以采取顺序存储和链式存储两种,今天我们来讨论下顺序存储结构以及其对应的实现算法. 采用顺序存储是表示线性表的最简单的方法,具体做法是:将线性表中的元素一个接一个地存储在一片相邻的存储区域 ...
- 利用顺序表建立简单图书管理系统
采用线性表中的顺序储存方式,实现对书籍的增加,删除,查找,展示等基础功能. 基本知识点:顺序表的初始化,顺序表的查找,顺序表的插入以及顺序表的删除. #include <iostream> ...
- python代码大全表解释-python实现顺序表的简单代码
顺序表即线性表的顺序存储结构.它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的.比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存 ...
- python顺序表代码_python实现顺序表的简单代码
顺序表即线性表的顺序存储结构.它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的.比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存 ...
- java顺序表增删查改_Java实现顺序表的增删改查
public class MyArrayList { private int[] array; //代表的是存在数据的数组 //array.length代表的是数组的容量 private int ...
- python简单代码-python实现顺序表的简单代码
顺序表即线性表的顺序存储结构.它是通过一组地址连续的存储单元对线性表中的数据进行存储的,相邻的两个元素在物理位置上也是相邻的.比如,第1个元素是存储在线性表的起始位置LOC(1),那么第i个元素即是存 ...
- java顺序表冒泡排序_冒泡排序就这么简单 - Java3y的个人空间 - OSCHINA - 中文开源技术交流社区...
冒泡排序就这么简单 在我大一的时候自学c语言和数据结构,我当时就接触到了冒泡排序(当时使用的是C语言编写的).现在大三了,想要在暑假找到一份实习的工作,又要回顾一下数据结构与算法的知识点了. 排序对我 ...
最新文章
- Opencv笔记(五)——把鼠标当画笔
- SQLserver 2000 重新安装挂起的解决方法
- 【基础】jquery全选、反选、全不选代码
- java开发paly框架下载_playframework框架笔记
- 无人车研发实力哪家强?Google只能排第十
- 【ArcGIS|3D分析】要素的立体显示
- stm32 SSI读编码器
- 推荐给大家一个恶搞代码,让你的好友电脑关机----关机代码
- 模糊C均值聚类算法---图像分割(python)
- 从faker.js 开源作者Marak已删除了GIthub所有代码我们得到了什么教训
- npm配置vue-cli所遇EACCES权限问题及解决方案
- 非典型文字描边效果的实现方法
- matlab计算miou值,深度学习计算机视觉图像分割领域指标mIoU(平均交并比)计算代码与逐行解析...
- Linux下磁盘配额设置
- Android 启动“无启动图标的 apk“
- 【图像处理】相机成像原理
- Lattice系列FPGA入门相关0(Lattice与Altera、Xilinx对比及入门)
- Stephen R.Schach《软件工程 面向对象和传统的方法》总结
- 用c语言编写代码:统计一个文本中出现次数最多的字符,写一个程序,统计一段文本中,出现次数最多的英文字母的数量,同字母大小写视为同字母 例子: wq...
- 小说网站用西部服务器,小说网站用什么虚拟主机
热门文章
- linux编程基础_第1篇 Linux系统编程 -多线程基础
- java异步调用第三方接口_Java调用第三方系统接口获取数据
- websvn mysql_Centos 5.3 Nginx+php+mysql配置 独立的 Subversion (SVN)服务器
- $.post把表单对象传递过去_第二章 第三节 Request请求对象详解
- Ubuntu 升级npm 以及安装cross-env 过程中遇到的问题
- Python3 系列之 编程规范篇
- C语言:一个数组中只有两个数字是出现一次
- MediaWiki使用指南
- Java Map hashCode深究
- 【转】svn的安装及与redmine的整合