【数据结构】(伪代码)以单链表存储结构来设计算法,将里面的数据元素实现就地逆转

插一句关于指针:

p,指针即地址。(初学可理解)

&p,&后面跟的是指针,&是取地址符,这里是取指针p的地址。

*p,表示的是以p为地址(也就是p所指向的那个结点)的内存单元所存储的内容,跟上面两个都是表示地址的不一样。由于代表内存单元存储内容,在各算法中会大量使用。

两个地址,一个结点内容。

void Reverselist(Linklist L) //为了提高的可读性,对同一结构体指针类型起了两个名称,Linklist与LNode*,两者本质上是等价的。
通常习惯上用Linklist定义单链表,强调定义的是某个单链表的头指针;用LNode*定义指向单链表中任意结点的指针变量。
例如,若定义Linklist L,则L为单链表的头指针,
若定义LNode *p(*是LNode的*),则p为指向单链表中某个结点的指针,用*p代表该结点.
当然也可以使用定义Linklist p,这种定义形式完全等价于LNode *p.

{
    linklist p,q;   //如上,p,q为指向单链表中某个结点的指针,*p,*q代表这里的某个结点,也就是指针指向的结点(单独的p,q是指针)
    p=q=L->next;   //单独的p,q表示这两个指针。而L->next=(*L).next,*L是L指针(头指针)所指向的结点,即头结点,(*L).next是头结点的的下一个结点的地址,即第一个结点。L->next能赋值给p,q,说明他指的是地址。
    L->next=null;   
    whlie(q)
        {   q=p->next;
            p->next=L->next;
            L->next=p;
            p=q;
        } 
 

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值