求教十字链表!
时间:2011-12-21
来源:互联网
定义了一个十字链表如下,但无法编译(不能取得cp值),求助高手!
typedef struct Trinode
{
int row,col;
Particle *RowP,*ColP;/*自定义的一链表*/
real DeltT[ND_ND];
struct Trinode *Right,*Down;
}Trinode,*TriList;
typedef struct
{
TriList *rhead,*chead;
}CrossList;/*十字链表;*/
CrossList *cp;
Trinode *E1,*E2;
Trinode *cur,*temp_node,*Rcur,*Ccur,*Rprev,*Cprev;/*删除节点时的前节点和当前节点;*/
(*cp).rhead=(*cp).chead=NULL;
/*创建行链表头数组;*/
(*cp).rhead=(TriList *)malloc((TotalParticle+1)*sizeof(TriList));
if(!cp->rhead)
exit(OVERFLOW);
(*cp).chead=(TriList *)malloc((TotalParticle+1)*sizeof(TriList));
if(!cp->chead)
exit(OVERFLOW);
for(ii=0;ii<TotalParticle+1;ii++)/*表头为空;*/
{
(*cp).rhead[ii]=NULL;
(*cp).chead[ii]=NULL;
}
typedef struct Trinode
{
int row,col;
Particle *RowP,*ColP;/*自定义的一链表*/
real DeltT[ND_ND];
struct Trinode *Right,*Down;
}Trinode,*TriList;
typedef struct
{
TriList *rhead,*chead;
}CrossList;/*十字链表;*/
CrossList *cp;
Trinode *E1,*E2;
Trinode *cur,*temp_node,*Rcur,*Ccur,*Rprev,*Cprev;/*删除节点时的前节点和当前节点;*/
(*cp).rhead=(*cp).chead=NULL;
/*创建行链表头数组;*/
(*cp).rhead=(TriList *)malloc((TotalParticle+1)*sizeof(TriList));
if(!cp->rhead)
exit(OVERFLOW);
(*cp).chead=(TriList *)malloc((TotalParticle+1)*sizeof(TriList));
if(!cp->chead)
exit(OVERFLOW);
for(ii=0;ii<TotalParticle+1;ii++)/*表头为空;*/
{
(*cp).rhead[ii]=NULL;
(*cp).chead[ii]=NULL;
}
作者: onlyou1221 发布时间: 2011-12-21
直接在Trinode里定义
typedef struct Trinode
{
int row,col;
Particle *RowP,*ColP;/*自定义的一链表*/
real DeltT[ND_ND];
struct Trinode *Right,*Down, *Left, *Up;
}Trinode,*TriList;
typedef struct Trinode
{
int row,col;
Particle *RowP,*ColP;/*自定义的一链表*/
real DeltT[ND_ND];
struct Trinode *Right,*Down, *Left, *Up;
}Trinode,*TriList;
作者: ouyh12345 发布时间: 2011-12-21
引用 1 楼 ouyh12345 的回复:
直接在Trinode里定义
typedef struct Trinode
{
int row,col;
Particle *RowP,*ColP;/*自定义的一链表*/
real DeltT[ND_ND];
struct Trinode *Right,*Down, *Left, *Up;
}Trinode,*TriList;
你好,能解释详细点吗?我没懂什么意思 直接在Trinode里定义
typedef struct Trinode
{
int row,col;
Particle *RowP,*ColP;/*自定义的一链表*/
real DeltT[ND_ND];
struct Trinode *Right,*Down, *Left, *Up;
}Trinode,*TriList;
作者: onlyou1221 发布时间: 2011-12-21
要不先练练编席子和补席子?(^_^)
链表←指针←内存地址
VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!
指针即地址。“地址又是啥?”“只能从汇编语言和计算机组成原理的角度去解释了。”
提醒:
“学习用汇编语言写程序”
和
“VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习C和汇编的对应关系。”
不是一回事!
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
链表←指针←内存地址
VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习汇编以及C和汇编的对应关系。
从汇编的角度理解和学习C语言的指针,原本看似复杂的东西就会变得非常简单!
指针即地址。“地址又是啥?”“只能从汇编语言和计算机组成原理的角度去解释了。”
提醒:
“学习用汇编语言写程序”
和
“VC调试(TC或BC用TD调试)时按Alt+8、Alt+6和Alt+5,打开汇编窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应内存和寄存器变化,这样过一遍不就啥都明白了吗。
(Linux或Unix下可以在用GDB调试时,看每句C对应的汇编并单步执行观察相应内存和寄存器变化。)
想要从本质上理解C指针,必须学习C和汇编的对应关系。”
不是一回事!
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
作者: zhao4zhong1 发布时间: 2011-12-21
C/C++ code
// // . . . . // . .┼. .┼. ..┼. ..┼.. // . → .┼. → .┼. → .┼. → .┼┼. → .┼┼┼. // ← . ← . ← .┼. ← ..┼. ← ..┼.. // . . . //
作者: zhao4zhong1 发布时间: 2011-12-21
CSDN的文字对齐功能让我无语。楼主将上图复制粘贴到记事本里面凑合看吧。
作者: zhao4zhong1 发布时间: 2011-12-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28