瓜牛牛 发表于 2021-11-5 11:09:10

用c写单链表的一个问题

typedef struct lnode
{
    int data;
    struct lnode *next;
}lnode,*linklist;

linklist l之后可以用l->next->next这种套娃的方式指向跳一个的结点吗,l->next->next->data可以得到跳个结点的数据吗

Gacy 发表于 2021-11-5 11:11:01

数据结构,麻了{:10_266:}

瓜牛牛 发表于 2021-11-5 11:19:52

Gacy 发表于 2021-11-5 11:11
数据结构,麻了

{:10_269:}

瓜牛牛 发表于 2021-11-5 11:22:16

我看视频里是做了个新的结点做中间跳板lnode*s =l->next.我觉得这个逻辑上不是一样的吗

jhq999 发表于 2021-11-5 12:12:31

本帖最后由 jhq999 于 2021-11-5 12:23 编辑

怎么是套娃?不是属于关系,你只不过是有下一个的地址,而不是包含下一个这个实例,“链”很形象,a知道b的地址,b知道c的地址,想通过a直接找到c是不可能的,的知道A在哪,找到A,通过A手里的B的地址找到B,通过B手里的C的地址找到C,以此类推

jackz007 发表于 2021-11-5 12:23:18

      是的
typedef struct lnode
{
    int data               ;
    struct lnode * next    ;
} lnode , * linklist       ;

linklist l               ;

l -> data                  ; // 头节点 data 字段
l -> next -> data          ; // 第 2 个节点 data 字段
l -> next -> next -> data; // 第 3 个节点 data 字段

basketmn 发表于 2021-11-5 12:26:31

jackz007 发表于 2021-11-5 12:23
是的

大佬,能不能帮我看看我的问题!谢谢

临时用户3.14159 发表于 2021-11-6 02:23:59

emm楼上的用代码给你解释出了你的问题 不过看不懂的话应该还是看不懂吧
我这里用文字说明一下上面的解答
大概是说
定义一个结构体linklist的指针变量 L
然后“L->data”表达式来指向 L 指针变量中data数据段 并获取里面的数据
如果L所存放的linklist结构体的地址中的"next"字段存放着另一个结构体"linklist"的地址
就可以用"L->next->data"来获取 L指针变量 所指向的结构体中的"next"字段所指向的另一个"linklist"结构体 并获取其中的数据
下面的也以此类推
页: [1]
查看完整版本: 用c写单链表的一个问题