数据结构中C语言的一些问题

图中s->data=c;r->next=s;r=s;的具体作用,以及r=s是干什么,新学数据结构,这些不知道为什么,求大神解答一下

s和r都是节点的指针
这是最简单的链表节点 一个节点由两部分组成 char data 和 node *next
next也是指针
这个算法是默认有一个初始头节点的,由r指向。因为只有一个节点 所以自己也是尾节点,r指向它没毛病。 此时r->next =null 你不用关心头节点的data是什么
然后开始循环,给s申请一个新的node节点空间,此时s指向这个新节点,然后通过s给这个节点的data赋值。
但是,这个节点跟链表是没有任何关系的,所以我们要把这个节点加到链表后面。
此时链表就一个节点(r始终指向尾节点),所以r->next=s 两个节点链接到了一起
然后再重要的事情再说一遍,r始终指向尾节点,不然下一个节点怎么加到尾部
你回去检查下发现,s还是原来那个值,新申请的节点此时有两个指针指向, 一个是r->next
另一个是s
所以让r=s 现在r也指向这个节点了,s可以空闲出来进行下一个节点的申请了
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-11-12
r始终指向最后一个结点。

求解数据结构c语言中串的问题
在C语言中处理字符串操作时,理解基础函数的用法至关重要。举例来说,如果字符串s1和m之间仅由一个'号分隔,而无空格存在,字符串长度则应为13。函数SubString(s1,8,5)的作用是从字符串s1的第8个字符开始,提取连续的5个字符,结果为"tuden"。函数index(s1,'u')则在字符串s1中搜索字符'u',若...

关于数据结构(C语言版)的两个问题
如果为右括号`)`,则检查`stack`是否为空,如果不为空则弹出栈顶元素,将`top`减一。在遍历结束后,检查`stack`是否为空。如果为空,表示所有括号均匹配,返回1;否则表示存在未匹配的括号,返回0。通过上述程序,可以实现对给定字符串中括号匹配性的判断,对于数据结构(C语言版)中的括号匹配问题,...

数据结构中C语言的一些问题
s和r都是节点的指针 这是最简单的链表节点 一个节点由两部分组成 char data 和 node *next next也是指针 这个算法是默认有一个初始头节点的,由r指向。因为只有一个节点 所以自己也是尾节点,r指向它没毛病。 此时r->next =null 你不用关心头节点的data是什么 然后开始循环,给s申请一...

数据结构(C语言版),求高手解决。。
1.二叉树是度为2的有序树( )【答案】× 2.完全二叉树一定存在度为1的结点( )【答案】× 3.深度为K的二叉树中结点总数≤2k-1( )【答案】√ 4.由一棵二叉树的先序序列和后序序列可以惟一确定它( )【答案】× 5.完全二叉树中,若一个结点没有左孩子,则它必是树叶...

c语言版 数据结构问题
1.找到结构的头(H)和尾(R)2.下面是伪代码 while(H在R之前) do begin if data_at[H]!=data_at[R] then return false;\/\/肯定不对称 H<-后继;R<-前驱;end;return true;时间复杂度O(strlen(s))既为表长

关于数据结构(C语言)的几个题
第二步s的后继指向q的后继节点;第三步q的后继指向s 4.查找72只需2步:第一步:设立low、high与mid指针,将72与mid指向的值即48比较;第二部:72比48大,low指向mid+1,重新算出mid,指向72,再与72比较,即查找成功。最多比较次数参考严蔚敏《数据结构》第九章 查找 220页。5.例如图中这...

数据结构c语言版问题
按列为主序存放于一个连续的存储空间中 a[10,20]一列10个元素,那么a[6,2],2表示第三列(前面有0,1),前面两列就是20 第三列6个,得到20+6=26,开始地址为200,则200+26=226

C语言数据结构问题
即high=mid-1=6。这时有mid=(5+6)\/2=5,又因为47<56,需要修改low,使low=6。这时有low=high=6,mid=(6+6)\/2=6,有list[mid].key==x.key。所以查找成功。如果下界指针low>上界指针high,则表示表中没有与关键字相等的元素,查找失败。希望对你有帮助!

算法与数据机构c语言问题
回到你的问题:a[0][0]的存储地址是2000,那么a[1][0]的存储地址就是2000+10=2010 以此类推,a[6][12]的存储地址就是2000+(12*10+6)*10=3260;这里给你个公式方便你计算:二维数组a[M][N]采用列序为主方式存储,每个元素占A个存储单元,且a[0][0]的存储地址是B.则a[C][D]的地址...

C语言数据结构的一个基本问题
1 int read_2D_Array(int **array, int i, int j, int column)2 { \/\/i row j column ,总行数为column 3 return((*(int*)array + i*column + j));4 } 以上函数的参数第一行的int **array是函数参数这个参数说明该函数参数列表一接收的数据类型为int ** 型的变量 ...

相似回答