java算法学习笔记--线性表篇

1----算法和程序设计的关系

算法是一切程序设计的灵魂和基础,选择合理的算法,可以起到事半功倍的效果。

2----应用程序可以分为哪几部分?

可以分为编程语言,数据结构,算法三大部分。

3----什么是算法

算法是对某一具体的问题的一种套路。

4----算法的五种特征

A 有穷性:指的是执行步骤是有限的,执行时间也是有限的。B确切性:每一个步骤都必须有明确的说明,不能模糊。

C输入:执行操作步骤前的条件。D输出:算法的结果。E:可行性:步骤必须可以执行,假设等是不允许的。

5----什么是数据结构

数据和数据之间的关系

6什么是线性表

由n个数据元素组成的有限序列。

7线性表的基本操作

初始化(构造一个空的线性表),计算表长,获取结点(取出该表上第?个结点),查找结点,插入节点,删除结点。

8顺序表

顺序表就是按照顺序存储方式存储的线性表。

用java语言表示如下:

static final int MAXLEN=100;

classDATE

{

String key;

String name;

int age;

}

class SLType

{

data[] ListDate=new DATA[MAXLEN+1];

int ListLen;

}

初始化顺序表

Sl.ListLen=0;

计算顺序表

return SL.ListLen;

插入节点

int SLInsert(SLType SL,int n,Data data)

{

int i;

if(sl.List.len>=maxlen)

{

system.out.print(“顺序表已满”);

return 0;

}

if(n<1||n>sl.listlen-1)

{

system.out.print("插入元素序号错误");

return 0;

}

for(i=sl.listlen;i>=n;i--)

{

sl.listData[i+1]=sl.listData[i];

}

sl.listData[n]=data;

sl.listlen++;

ruturn 1;

}

追加结点

int sladd(sltype sl,Data data)

{

if(sl.listlen>=maxlen)

{

system.out.print(顺序表已满,不能再添加结点了)

return 0;

}

sl.listData[++sl.listlen]=data;

return 1;

}

删除结点

int slDelete(sltype sl,int n)

{

int i;

if(n<1||sl.listlen+1)

{

sl.listData[i]=sl.listData[i+1];

sl.list-1;

return 1;

}

查找结点

A按照序号查找结点

Data slfindbynum(sltype sl,int n)

{

if(n<1||n>sl.listlen+1)

{

system.out.print(结点序号错误,不能反悔结点);

return 0;

}

return sl.listData[n];

}

B按照关键字查找结点

int slfindbycount(sltype sl,String key)

{

int i;

for(i=1;i

{

if(sl.lsitData[i].key.compareto(key)==0)

{

return i;

}

}

return 0;

}

显示所有结点

int slall(sltype sl)

{

int i;

for(i=1;i<=sl.listlen;i++)

{

system.out.print(sl.list.Data[i].key,sl.listData[i].name,sl.listData[i].age);

}

return 0;

}




end!!!



































你可能感兴趣的:(java,算法,学习笔记,java算法)