数据结构java实现

一.数据结构的内容

逻辑结构:关联关系,邻里关系。
存储结构:数据元素+关联方式。
运算:对逻辑结构的加工。

1.算法特性:

有穷性:指令序列是有限的
确定性:每条语句的含义明确,无二义性
可行性:每条语句都应在有限的时间内完成
输入:零个或者多个输入
输出:一个或者多个输出
2.程序
程序=数据结构+算法+程序设计方法+编程语言
**程序是算法用某种程序设计语言的具体实现。**程序可以不满足算法的有穷性,比如操作系统也是一种程序,如果你愿意,你的电脑可以一直开着,保持操作系统的运行。
3.程序,算法,软件之间的关系
程序:算法的计算机实现。用某种编程语言实现。

算法:表示问题的解。

软件:程序+文档
如下图所示:
在这里插入图片描述

二.数据类型

1.数据类型
指一个值的集合和定义在集合上的操作集合。例如:java的整数类型(Integer),就不仅仅表示整数数值的集合,还包括对整数类型进行的操作集合,加、减、乘、除、模等操作。
Java中的数据类型:
在这里插入图片描述
2.抽象数据类型:

一个数学模型以及定义在这个模型上的一组操作(由用户定义,用以表示应用问题的数据模型)。

看起来抽象数据类型和数据类型的定义基本相同。不同点在于:数据类型通常是指某种高级语言的,而抽象数据类型用户重新设计,一种概念。这里的"抽象"的含义在于数学抽象。

原子类型:比如整型
固定聚合类型:比如复数,两个实数确定的次序构成
可变聚合类型:比如汽车类型,构成的成分是不确定的。(因为小轿车、大卡车的构成是不同的)
**抽象数据类型抽象的层次越高,那么可复用性也越高。**比如:java中的Object是对所有对象的抽象,那么就可以作为所有类的父类。
3.抽象数据类型的表示(代码):
(1)java代码定义一个学生类(和面向过程的c语言的区别是除了定义对象的属性,还要定义对象的方法,即对属性进行赋值和修改等动作)

package test1;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by smyhvae on 2015/8/12.
 */
public class Student {
    String num; //学号
    String name; //姓名
    char sex; //性别
    Date birthday; //出生日期
    String contact; //联系方式

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    @Override
    public String toString() {

        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-mm-dd"); //将Date日期转化为String字符串打印出来

        return "Student{" +
                "num='" + num + '\'' +
                ", name='" + name + '\'' +
                ", sex=" + sex +
                ", birthday=" + sdf.format(birthday) +
                ", contact='" + contact + '\'' +
                '}';
    }

}

(2)给学生类进行赋值并且打印出来(在main方法中定义student的实例,调用student的方法进行赋值,并利用toString方法进行打印,注意看时间类的相关写法

package test1;

import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;

/**
 * Created by smyhvae on 2015/8/12.
 */
public class JavaTest {

    public static void main(String[] args) throws ParseException {

        Student s = new Student();
        s.setNum("111222");
        s.setName("生命壹号");
        s.setSex('男');  //这里面赋值可以用中文
        s.setContact("smyhvae@163.com");

        Calendar calendar = Calendar.getInstance();
        calendar.set(1991, 11, 28);
        Date date = calendar.getTime();
        s.setBirthday(date);

        System.out.println(s.toString());

    }

}

结果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值