欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

线性表

程序员文章站 2022-07-10 19:42:16
...

 线性表
            
    
    博客分类: 基本 数据结构线性表 以前写博客,为了增加关注度,现在呢?写给自己

 线性表是一种典型的线性结构,是最简单、最常用的数据结构,比如栈、队列都可以说是线性表.

 逻辑结构:

  由n个数据元素构成,对于非空的来说,有且只有一个开始结点,有且只有一个尾巴结点,内部结点有且只有一个直接前驱,和一个直接后驱。同一个线性表内部的数据元素的类型相同,每个元素的数据元素相同

 数据操作:

 初始化、计算表长、获取结点、查找结点、插入结点、删除结点

 存储:

 1.顺序存储:

 构造数据元素:

 

public class DATA {

	String key;//结点的关键字
	String name;
	int age;
}

 

 构造线性表:

 

/**
 * 主要用于定义顺序表结构
 * @author Administrator
 *
 */
public 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.print("顺序表已满,不能插入结点!\n");
			return 0;
		}
		if(n<1||n>SL.ListLen-1){//插入结点序号不正确
			System.out.print("插入元素序号错误,不能插入元素!\n");
			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("删除结点序号错误,不能删除成功!\n");
		    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("结点序号错误,不能返回结点!\n");
		    return null;
		}
		return SL.ListData[n];
	}
	
	int SLFindByCount(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.print("{"+SL.ListData[i].key+","+
			SL.ListData[i].name+","+SL.ListData[i].age+"}");
			
		}
		return 0;
		
	}
	
}

 .....

 测试结果:

线性表
            
    
    博客分类: 基本 数据结构线性表 

 

 以前老是看不懂,明明知道数据结构是基础,很重要的,今天突然就明白了,呵.
 

  • 线性表
            
    
    博客分类: 基本 数据结构线性表 
  • 大小: 39.4 KB