c语言-新手想问一下链表的问题

问题描述

新手想问一下链表的问题

struct Node create_list()
{
int value;
int i;
int len;
struct Node *pHead=(struct Node
)malloc(sizeof(struct Node));
struct Node pTail=(struct Node)malloc(sizeof(struct Node));
pTail=pHead; ////////////////////////////////// /////////////// 将头指针赋给了尾指针
printf("请输链表入节点的长度:");
scanf("%d",&len);
for(i=0;i
{
struct Node *pNew=(struct Node*)malloc(sizeof(struct Node));
printf("请输入第%d个节点的数据:",i+1);
scanf("%d",&value);
pNew->a=value;
pTail->pNext=pNew;/////////////现在是尾节点-》新节点
pNew->pNext=NULL;///////////////////////////////////现在把新节点的指针域变为零,便于赋给尾节点(尾节点的指针域为空)
pTail=pNew;/////////////////////////////////////////将
}
return pHead;
}

pTail->pNext=pNew;
pNew->pNext=NULL;
pTail=pNew;
这三条代码什么意思呢?能否帮忙注释一下第三条的含义呢?拜托了

解决方案

看了,你书本里链表的内容你都没有理解啊。
pTail->pNext=pNew,表示a的下一个是b,也就是a的下一个和b关联。
pNew->pNext=NULL;表示b的下一个还是未知,先赋值null
pTail=pNew; pTail一直指向最后一个节点,现在最后一个节点是b

解决方案二:

struct Node *pHead=(struct Node)malloc(sizeof(struct Node));
struct Node pTail=(struct Node)malloc(sizeof(struct Node));
为头节点和尾节点分配内存。

解决方案三:

链表里有两种插入结点算法,一种是头插法,一种是尾插法

尾插法是将新增节点插在链表尾部,
for(t = Head; t->next; t=t->next); //结束时t指向尾节点
p->next = NULL; //进行插入
t->next = p;

http://blog.csdn.net/behanga/article/details/6701495
可以仔细看一看

解决方案四:

这是将新的节点插入到链表的尾部,然后将链表尾指针指向新的尾节点,并确保尾节点的next指针指向NULL

解决方案五:

尾插法建立链表。
不知道你学没学过链表的插入,就相当于每次插入都是在尾部。
pTail->pNext=pNew; 现在的尾指针的next指向新的节点
pNew->pNext=NULL;新节点没有下一个节点,所以next是NULL
pTail=pNew;尾指针指向新节点

时间: 2025-01-20 19:31:27

c语言-新手想问一下链表的问题的相关文章

上传-C#新手想问为什么我运行后会显示连接已重置~~~~~

问题描述 C#新手想问为什么我运行后会显示连接已重置~~~~~ 我想将文件上传至阿里云的OSS中,点击button就会显示连接已重置,不知道是端口的问题还是其他的?请各位大神指教~ 设置method="post" enctype="multipart/form-data",里面有一个 和上传按钮button. protected void button_Click(object sender, EventArgs e) { HttpRequest request =

新手想问下学习哪门编程语言比较好

问题描述 如题,是java,c/c++,c#,python,r,erlang,go,ios,andriod,php?谢过! 解决方案 java + androidJava语言是一种优秀的编程语言.它最大的优点就是与平台无关,在Windows 9x.Windows NT.Solaris.Linux.MacOS以及其它平台上,都可以使用相同的代码."一次编写,到处运行"的特点,使其在互联网上广泛采用.比较主流Android平台首先就是其开放性,开发的平台允许任何移动终端厂商加入到Andro

新手java-Java新手,想问一个关于在线考试系统的问题。

问题描述 Java新手,想问一个关于在线考试系统的问题. 现在做一个在线考试系统,从数据库拿到了一整张试卷(有单选,多选,判断,简答题),把题目一题占一页的显示在页面上,然后点击next到第二题.如何把选的这些答案保存到数据库?是点击一下next保存一个,还是一张试卷全做完了点击submit一起保存?具体怎么解决呢? 解决方案 随便呗,要是一起保存,就写全局的静态Map存数据,最后一次提交,保存Map数据,然后在清空占用内存 解决方案二: 你在去题目的同时为何不一起把答案取出来,然后在做完试卷的

java-我想问一下,用Java语言,利用pdfBox将pdf转为图片,怎样才能使图片不失真

问题描述 我想问一下,用Java语言,利用pdfBox将pdf转为图片,怎样才能使图片不失真 我用pdfBox将pdf转成图片的时候,图片中的文字有点不清晰,请问怎样才能使图片不失真,或者提高一下图片的清晰度呢,请问有谁知道的,帮忙解决一下,谢谢了 解决方案 首先用pdf阅读器看下,确认下你的pdf不是扫描件,或者分辨率足够. 如果可以,调整输出分辨率. imageWriter.writeImage(document, imageFormat, password, startPage, endP

class-本人新手刚学习两天我想问一下为什么我的break用法到底哪错了谢谢各位大神了

问题描述 本人新手刚学习两天我想问一下为什么我的break用法到底哪错了谢谢各位大神了 就是驱1到100前五个被三整除的数字 public class For{ public static void main(String[] args){ int i=1, num=0; while(i<=100);{ if(i%3==0){ System.out.print(i+" "); num++; } if(num==5){ break; } i++; } } } 解决方案 while后

c语言 内存问题-c语言新手,写了个简单程序,没问题啊,怎么就出现这种问题呢,求问

问题描述 c语言新手,写了个简单程序,没问题啊,怎么就出现这种问题呢,求问 1C 这是程序 这是输入的数据,3个人名 这是出现的异常,不懂是为什么啊?有人给说说吗 解决方案 看着像是访问变量出问题了,你怎么不放代码放截图怎么看的清.最好放代码别人好调试 解决方案二: 楼主这种要存好几个字符串的,要么用二维数组,要么用指针数组 #include<iostream>using namespace std;void main() { int i; char *name[4]; //创建指针数组,含有

我想问一下c语言里面数组每个字符的地址是怎么分类的

问题描述 我想问一下c语言里面数组每个字符的地址是怎么分类的 我想问一下 上面那个ch1ch2 ch3 为什么是从30 38 40开始的???ch2明明这么多字符可是他只占用了38 39??这部分东西学校还没讲,,,我想了解一下 上网查了一下感觉还是不太懂 希望有人能详细解释一下 另外想问一下 这三个数组占用的空间是连续的吗 解决方案 这个要看你的代码,你要注意0x40-0x38=8而不是2,是16进制.编译器有时候会按照4字节对齐变量,也就是你分配1~3个字节都是4字节,4~7字节都是8字节,

代码-我想问一下c语言循环语句的问题~

问题描述 我想问一下c语言循环语句的问题~ 这是我的代码 #include <stdio.h> void main() {int a,n=0,i,j,k,t; scanf("%d",&a); for(t=100;t<=999;t+=1) {i=t/100; j=t/10%10; k=t%10; if(i+j+k==7) n+=1; if(n==a) printf("%dn",t); } } 我使用了循环语句,但是结果出来很多数字 我不明白后

新手提问:我机器上安装了IBM Rational Systems Developer,还有Application Server V6.1 ,我想问一下,我怎么配置才能一边编码一边调试呢?

问题描述 我机器上安装了IBMRationalSystemsDeveloper,还有ApplicationServerV6.1,我想问一下,我怎么配置才能一边编码一边调试呢?谢谢大家了,刚接触这块,不懂. 解决方案 解决方案二:在RAD里面可以配置application,里面可以指定服务器的类型.好像还要装一个连接器,如果RAD是完全安装的话,就不需要了.解决方案三:如果是RAD,没必要单独安装WAS...装RAD的时候,选上ApplicationServerV6.1那个就行啦...解决方案四: