JAVA第九天——顺序表(一)

JAVA第九天——顺序表(一),第1张

JAVA第九天——顺序表(一) 顺序表

一. 顺序表的来源
  后面几张,基本上与数据结构有关,因为数据结果提供的是一种方法,而我写博客,就是用Java来实现。很经典的数据结构教材,用的是C语言来实现。

二. 数据结构

  1. 在数据结构中的顺序表
  • 定义顺序表:
typedef struct {
	ElemType *elem;
	int length;
	int listsize;
}SqList;
  • 初始化顺序表:
Status InitSqList(SqList &L) {
	L.elem = (ElemType*)malloc(10*sizeof(ElemType));
	if(!L.elem) return -2;
	L.length = 0;
	L.listsize = 100;
	return OK;
}
  • 在第i个位置插入
Status InsertSqList(SqList &L, int i, ElemType e) {
	//判断位置是否合法
	if(i<1||i>L.length+1) return ERROR;
	if(L.length>=L.listsize) {
		newbase=(ElemType*)realloc(L.elem,(L.listsize+10)*sizeof(ElemType));
		if(!newbase) return -2;
		L.elem = newbase;
		L.listsize += 10;
	}
	//插入
	ElemType p,q;
	q = &(L.elem(i-1)); //q为待插入元素的位置
	for(p=&(L.elem[L.length-1]); p>=q; --p) {
		*(p+1) = *p;
	}
	*q = e;
	++L.length;
	return OK;
}
  • 删除某个位置的元素
Status DeleteSqList(SqList &L, int i, ElemType &e) {
	if(i<1||i>L.length) return ERROR;
	p = &(L.elem[i-1]); //p为待删除元素的位置
	e = *p;
	q = L.elem+L.length-1;
	for(++p; p<=q; ++p) {//++p代表已经是下一位了
		*(p-1) = *p;
	}
}
  1. 翻译成用Java语言来实现
  • 定义顺序表:
class SqList {
	//定义顺序表
	final int MAX_LENGTH = 10;
	int length;
	int arry[];
	...
}
  • 初始化顺序表:
class SqList {
	...
	//初始化
	SqList() {
		length = 0;
		arry = new int[MAX_LENGTH];
	}
	//已知一个数组,在初始化
	SqList(int[] a) {
		length = a.length;
		arry = new int[MAX_LENGTH];
		for(int i=0; i 
  • 在第i个位置插入
	//插入
	public boolean InsertSqList(int location, int e) {
		//满了
		if(length == MAX_LENGTH) {
			return false;
		}
		//插入不合法
		if(location<0||location>length) {
			return false;
		}
		//开始插
		for(int i=length; i>location; --i) {
			arry[i+1] = arry[i];
		}
		arry[location] = e;
		++length;
		return true;
	}
  • 删除某个位置的元素
	public boolean DeleteSqList(int location) {
		//删除位置不合法
		if(location<0||location>=length) {
			return false;
		}
		//开删
		int p = location;
		for(++p; p 
  • 源码://明天补全
import java.util.Scanner;
class SqList {
	//定义顺序表
	final int MAX_LENGTH = 10;
	int length;
	int arry[];
	//初始化
	SqList() {
		length = 0;
		arry = new int[MAX_LENGTH];
	}
	//已知一个数组,在初始化
	SqList(int[] a) {
		length = a.length;
		arry = new int[MAX_LENGTH];
		for(int i=0; ilength) {
			return false;
		}
		//开始插
		for(int i=length; i>location; --i) {
			arry[i+1] = arry[i];
		}
		arry[location] = e;
		++length;
		return true;
	}
	public boolean DeleteSqList(int location) {
		//删除位置不合法
		if(location<0||location>=length) {
			return false;
		}
		//开删
		int p = location;
		for(++p; p					
										


					

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5672230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存