顺序表和链表的清空,销毁,构造函数

一.构造函数

在定义对象时调用构造函数,构造函数是用来建立一个空表

1.顺序表构造函数

len,size,elem,这仨合起来看作是表的头目,调用构造函数首先为这个“头目”这仨数据分配空间,表的元素有没有空间分配要看m的值。
↓主要是关于空间的分配问题↓
①构造函数是来建立一个空表,令len=0,就说明没有数据元素这就是一个空表了。至于有没有空间,也就是size是多少与空表没有关系,所以m==0||m!=0都可以:
if(m==0)elem=NULL;
else elem=new ElemType[m]
②构造函数给顺序表类的数据元素分配存储空间,所以len,size,elem都有了存储空间,至于剩下的表的空间看m是否等于零来确定是否分配空间,除了构造函数以外,其他的基本操作都建立在了非空表的基础上。在应用里会用插入函数等等来构建非空表。


2.链表的构造函数


head,tail,len这仨是表的头目,也是一样的构造函数建立一个空表,先给这仨分配存储空间
①调用构造函数给len,head,tail,和头结点分配空间
链表有:头指针,头结点→【首元结点,尾节】←有了最后两个就一定不是空表了,建立链表的空表就只是建立一个头结点;new ListNode
②head,tail,len 的值
要建立一个空表首先len=0;head是头指针指向头结点,所以head=new ListNode;至于tail,首先,必须要给它赋值,但是如果有了尾节点,就不是一个空表了所以tail=head,让它也指向头结点;这样最后一个元素还是头结点,就说明只有头结点了,就是一个空表

比较总结:

1.分配空间:
顺序表:len,size,elem,分配空间,其他看m的大小决定是否分配空间。
链表:len,head,tail,头结点分配空间。
2.赋的值:
顺序表:len=0(空表),size=m,→if(m==0)elem=NULL;eles elem=new Elemtype[m]。
链表:len=(空表),head=tail=ListNode。

二.空表

1相同点:
顺序表和链表的构造函数都是建立一个空表,都是len=0
2.不同点:
①顺序表:确定只有(这个有是指空间)”头目”的空间,其他空间看m的大小决定
(并不是清除元素而是使其无法操作,因为没有办法清除元素)1→1/2
②链表:确定有l头目和头结点的空间。
(也是让其无法操作,但是这个可以清除元素就挨个清除了)1→1
3代码实现:
顺序表:len=0;elem=NULL(其实只要len=0就行了,elem是附带的这样更加让其无法操作了)
链表:while(p)
{delete p;}
tail=head;
len=0;

三.销毁

都是只留下了头目的空间

1.顺序表:detele elem[ ]:elem=NULL;
去除掉出头目外所有的空间(就类似于构造函数时m==0的情况)
2. 链表:先清空表,再去掉头结点;也就是只剩下了头目
(链表和顺序表的销毁都是只剩下了头目)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值