《数据结构打卡》第2天(顺序表的基本操作)

线性表的顺序存储结构,插入、删除和定位运算

先来总结一下今天的笔记吧。
对了,其实以后想要再想把xdf文件转换成doc的话,可以直接复制相关问题在网上就可以查了,不用再去想办法转换

1.线性表的6种基本运算:
答:
初始化InitList(L)、求表长LengthList(L)、取值GetElem(L,i)、查找LocateElem(L,i,e)、插入InsertList(L,i,e)、删除DeleteList(L,i,e)。
2.写出顺序表的初始化、插入、删除算法。

(1)顺序表的初始化InitList(SqList &L)

Status InitList(SqList &L){
	L = new Node; //或L = (SqList)malloc(sizeof(SqList)) 分配存储空间
	L.length = 0;
}

(2)顺序表的求长度LengthList(SqList L)

int LengthList(SqList L){
	return L.Length; //直接返回线性表的长度
}

(3)顺序表的取值GetElme(SqList L,int i,&e)

Status GetElme(SqList L,int i,&e){ //在表L中取第i个元素的值,用e返回其值
	//
	if(i<1 || i>L.length) return error;  //判断取值位置是否合法
	e = L.elem[i-1];  //直接用e返回第i个位置上元素的值(其地址为i-1)
	//取值时间复杂度为O(1)
}

(4)顺序表的查找LocateElem(SqList L,int i)

int LocateElem(SqList L,int i){ //返回表L中第i个元素位置的序号,失败则返回0;
	for(i=0;i<L.length;i++){ //从地址为0的元素开始一直往后找
	if(L.elem[i]==e)  //若第i个元素的值=e
		return i+1; //则返回元素的地址+1 为元素的序号
	else
		return 0; //失败返回0
	}
}

(5)顺序表的插入 InsertList(L,i,e)

Status  InsertList(SqList L,int i,ElemType e){ //在表L中第i个元素位置上插入元素e
	int j; //定义需要移动的元素的位置
	if(i<i || i>L.length+1) return error //判断插入位置是否正确
	if(L.length == MaxSize) return error //判断插入位置是否已满
	for(j=L.lenth-1;j>=i-1;j--){ //从第n-1至第i个位置依次向后移动一位
	//也就是如果表长大于等于要插入的元素i-1的范围,就允许插入
		L.elem[i-1] = e; //将e插入到第i个位置的绝对地址上
		L.elem[j+1]	= L.elem[j]; //插入位置之后的元素依次向后移动一位
		L.length++; //表长加1
		return ok;
	}
}
//插入算法的时间复杂度为O(n),在第i个元素上插入需要移动的元素个数为n-i+1,平均需要移动的元素个(n-i+1)/2。

(6)顺序表的删除

Status DeleteList(SqList L,int i,ElemType &e){ //删除表L第i个元素的值,其值用e保存
	int j;
	if(i<i || i>L.length) return error //判断删除位置是否正确
	*e = L.elem[i-1]; //用e保存被删元素的值
	for(j=i-1;j<=L.length-1;j++){ //从被删元素i+1至n的元素依次向前移动1位
	//也就是如果要删除的元素i-1小于等于表长,则允许删除
		L.elem[j-1] = L.elem[j]; //插入位置之后的元素依次向前移动一位
		L.length--; //表长减1
		return ok;
	}
}
//删除算法的时间复杂度为O(n),在第i个元素上删除需要移动的元素个数为n-i,平均需要移动的元素个(n-i)/2。

1.今天得抓紧时间写点笔记了,绝不能拖到明天再做了,因为今天在家里学得太少了;
2.上午只回顾了昨天单链表的逆置算法,插入删除,以及在找办法把xdf文件转换成pdf再转换成doc文件,忙了那么久,后面才发现转换成的文档只能以图片的形式呈现,连复制都不能;
3.下午只做了《第二章线性表习题集》一套题不到,只做了前面30几套填空题和后面20套选择题,甚至都还没来得及总结,就到晚上了。
4.果真是疲惫了,都没有想继续做下笔记的想法了,算了,留到明天早上再来回顾今天的笔记吧。

发布了20 篇原创文章 · 获赞 0 · 访问量 447

猜你喜欢

转载自blog.csdn.net/qq_41240204/article/details/105372706