扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、第一个if检查链表是否为空,如果为空,直接将p0变为首结点就完成了插入。while循环的作用是寻找插入位置,因为链表要求降序,所以用p1从首结点开始找,要找到第一个info小于等于p0结点的结点。
10年积累的网站设计制作、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有涟水免费网站建设让你可以放心的选择与我们合作。
2、这个可能是你在第一次执行操作的时候移动了指针,而用完后没有指向开始的位置。只是可能,没有代码这个是说不清的。一行都没有执行说时不满足执行的条件。“链表的地址就莫名其妙的变化了。
3、if中可以赋值给head的理由很简单。因为 if(PTScount(head) == 0)if判断的就是看它是不是 第一个元素。如果是第一个元素,自然直接将ins赋值给head。head所代表的就是第一个元素。
1、答案:①p0 ②p1 ③NULL 解析:p0指向要插入的结点,p1指向要和p0结点的info进行比较的结点,如果找到应该插入的位置,p0会被插入在p1之前,如果没找到,会被插入在p1之后。
2、gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符 不属于这个字符串。其调用格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。
3、1,ptr指针是链表的头指针,2,INIT_LIST_HEAD(ptr) 是一个宏,具体的实现参见list.h 是将ptr里的 prev和next两个指针指向自己,这样就完成了初始化。
4、楼主用的是指针不是变量,这两者有很大区别!指针是在内存中分配空间,程序访问时会直接访问内存,只要内存未被重写,值就不会改变。
-运算是间接寻址,你用多指针的话会发现指针用-这种调用方式更简洁 链表指针是C语言的一个难点,但也是重点,学懂了非常有用。要仔细讲就必须先讲变量、指针。什么是变量?所谓变量,不要浅显的认为会变得量就是变量。
使用结构体构造链表,每次增加一个对象,就用malloc分配内存一个结构体大小的内存,并将链表指针指向这块内存。
使用链表时候,先确认要使用的是单向链表,还是双向链表,或者是循环链表。一定要初始化。添加节点时候,要注意是否队列已满。删除节点的时候,要注意队列是否为空。要有可以判断链表是否为空的函数。
补充销毁链表、打印链表内容的两个函数。主函数已补上建立、插入、删除、打印诸代码。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流