永发信息网

关于pascal语言链表的问题

答案:2  悬赏:50  手机版
解决时间 2021-03-08 09:56
关于pascal语言链表的问题
最佳答案
第一个问题:我的理解是,要注意链表是Pascal语言中唯一可以循环定义的类型,所以如果有生硬的格式请不要见怪,否则可能在识别上有困难。如果你的指针变量的next域指向其他类型的变量而非自身,那么怎么拉成链表呢?
刚刚我试验过,如果你试图用两种变量交替拉成链表:
type pointer=^node; 保证在这一句不会报出node没有被定义的原因,我认为就是因为符合链表循环定义的格式。
node=record
v:longint;
next:pointer1; 在这一句就会报错,原因是pointer1还没有被定义。
end;
pointer1=^node1;
node1=record
v:longint;
next:pointer;
end;
第二个问题:可能没有理解p1和p1^的意思,p1指的是指针指向的地址,p1^表示的是指针指向地址存储的变量,在程序中就是Longint,那么将指针的地址赋值给一个Longint是不可行的,正如Pascal报错所言:Incompatible types: got "^LongInt" expected "LongInt"。追问那么既然基类型为longint的指针无法存储一个指针的地址,那为什么基类型为pointer的指针变量p^.next就可以存储指针的地址呢追答基类型为longint的指针可以存储一个指针地址啊。在上面的例子中,p1^:=p2;是将p2这个地址复制给了p1这个地址所对应的longint,相当于类型不匹配啊。如果写成p1:=p2;语法就是正确的,将p2的地址赋值给p1,p1和p2都指向p2所指的longint。
全部回答
就像递归一样
next存下一个数据的指针
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
电机轴承须加什么样的润滑油最好
头上有痘痘 可以染头发吗
揭东区地址有知道的么?有点事想过去
怎么写大街上的声音的作文
华夏免费版刀盾和剑盾的区别
马记老式烩面地址在哪,我要去那里办事
拿去花风控还能用不?已经过了3个月了!还用
x-8分之3=10分之7
粤飞建材防水总汇我想知道这个在什么地方
近代中国衣食住行受西方影响发生了深刻变化,
下巴突出
苏州哪家店川菜比较有名
低血糖发作时一般持续多长时间
女的28了,一无所有,怎么办?
请问有没有清华或北大的研究生?有些问题想咨
推荐资讯
广州星河湾交通方便吗?
小米手机应用商店打开后里面软件都没头像怎么
重庆70以上老人的老年公交卡怎么办理?
能查到是哪一个地方或者是谁帮我充值的话费吗
汇展陈江小商品批发城A3号门地址在哪,我要去
CF游戏换购活动怎么结束了,公告不是十月底结
【单车轴承】自行车车把上哪有滚动轴承我都骑
别人欠我的钱我可以让法院冻结他妻子的账户吗
网易云音乐付费音乐包在哪里安装
【武德四年】...完成下列各题。苏世长讽谏武
氙气灯和透镜有什么区别
全球每天约有4亿人使用网络,并非所有人上网
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?