严蔚敏 顺序表中遇到的一些疑问和答案

一、顺序表的插入

       需要注意的是& 和 *在函数中的区别,如果为&,则是引用,而*是指针的意思。两者都要都可传值进来,传进来之后,& 是用点号(.)实现, *是用箭头(->)来实现。而两者最大的区别在于方式不同而已。还有一种情况是 都没有标识符的,他的作用只是传值进来,并没有采取修改的作用。

        代码如下:

	status ListInsert(LinkList &L,int i,ElemType e){  // 采取为&
		if(i<1 || i>L.length+1)  return error;
		if(i==Maxsiae) return error; // maxsize 为最大长度 
		for (j=L.lenth-1;j>i-1;j--){
		 L.elem[j+1]=L.elem[j];   // 本质为后退一步 
		 } 
		 L.elem[i-1]=e;
		 L.lenth++;
		 return ok; 
	}
}
	status ListInsert(LinkList *L,int i,ElemType e){ // 采取为*
		if(i<1 || i>L->length+1)  return error;
		if(i==Maxsiae) return error; // maxsize 为最大长度 
		for (j=L->lenth-1;j>i-1;j--){
		 L->elem[j+1]=L->elem[j];   // 本质为后退一步 
		 } 
		 L->elem[i-1]=e;
		 L->lenth++;
		 return ok; 
	}

核心代码 :

	for(j=L.length;j>i-1;j--)
	   l.elem[j+1]=l.elem[j]; // // 本质为后退一步 

 

 二、顺序表的删除

          删除的思想,本质就是在某给点位上,将后面的数据向该点移动,并且其后的数据覆盖该点。

         代码如下:

	status Listdesert(LinkList &L,ElemType e){ 
		if(i<1 || i>L.length+1)  return error;
		for (j=i;j<length-1;j++){   // 注意是该点上操作 
		L.elem[j-1]=L.elem[j];   // 本质为向前一步 
		 } 
		 L.length--;
		 return ok; 
	}

    核心代码为:

		for (j=i;j<length-1;j++){   // 注意是该点上操作 
		L.elem[j-1]=L.elem[j];   // 本质为向前一步 
		 } 

       

以上就是线性表我遇到的一些问题和一些思维方式,欢迎大佬们的指正! 写博客不容易,还请你随手点个关注,你的一点,就是我永生的老爷。(写博客的第三篇)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值