关于C++进栈的问题,C的高手回答下

来源:百度知道 编辑:UC知道 时间:2024/05/26 21:38:26
请问p=head->next p=p->next 分别代表什么意思?详细点谢谢
请问进栈输入的小问题 p->next=tops;和tops=p分别是什么意思 进栈需要哪些步骤 多谢
你们回答的都太好了 多谢 想问问top是指针还是一个结构体类型的指针,指针变量 个人感觉应该是进栈 操作的一部应该是p->data=x; p->next=*top; *top=p;而不是p->data=x; p->next=top; *top=p;对么?

这个一画图就全明白了

p = head->next,就是p指向head的下一个节点
p = p->next,就是p指向p的下一个节点,即p指向后移

p->next=tops表示,将一个新节点加入栈,然后
tops=p,栈顶指针移到最上面来

不要硬啃代码
画画图去理解它

不是进栈问题
是指针问题

在链式存储结构中
通常会定义一个无值节点做为头节点
这样做虽然会浪费一个节点的存储空间
却能够换来操作的统一一致性

p=head->next 中的head就是头结点 让指针p指向head->next 实际上就是指向了第一个有实际值存储的节点

p=p->next 链式结构中向下遍历,让p指向下一节点

栈的话 就会把新进来的元素置顶

p->next=tops就是这个意思

如果楼主不太理解的话 可以先学习链表知识以及c或c++中的指针
再来学习栈

p=head->next 在链表中head前移一位
同理p=p->next是让P指向P的下一位
p->next=tops是让新的结连接到原链表上
tops=p把p的地址存放在tops中

p=head->next: p指针指向head的下一个节点,
p=p->next :就像i++一样,p指针指向p的下一个节点。
p->next=tops: p指针指向节点的下一节点是tops节点。