顺序表的翻转

首先要求将该表倒置,并不占用新的空间。

有两条思路:一,将表中的各个元素指针依次翻转,指向前一个元素,并将头指针指向NULL,尾指针指向倒数第二个元素。二,先形成循环表,再将循环表中的尾指针所在元素改为头指针,将第一个元素的指针,改为指向NULL。(这里的头指针不是第一个元素所在地址,表述不准确,见谅)

第一条思路如下

void ReviseList(LinkList &head){
  LinkList p,q,pr;
  p = head->next;
  q = NULL;
  head->next = NULL;
  while(p){
    pr = p->next;
    p->next = q;
    q = p;
    p = pr;
  }
  head->next = q;
}

先将目标顺序表的地址传入函数,并用p接受表中的第二个元素,也就是第一个数据所在地址,再将这个数据地址改为NULL,接下来用一个while循环,依次将表中的元素改为指向前一个数据。直到尾指针改为头结点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值