鱼C论坛

 找回密码
 立即注册
查看: 4025|回复: 5

关于链表的问题

[复制链接]
发表于 2013-8-12 19:26:50 | 显示全部楼层 |阅读模式
5鱼币
        #include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct NODE
{
int Date;
struct NODE *pNext;
}NODE, *PNODE;
PNODE create_list(void);
void traverse_list(PNODE);
main()
{
PNODE pHead=NULL;
pHead=create_list();
traverse_list(pHead);
return 0;
}
PNODE create_list(void)
{
int len;
int i;
int val;
PNODE pHead=(PNODE)malloc(sizeof(NODE));

if(NULL==pHead)
{
  printf("分配失败,终止程序!\n");
  exit(-1);
}
PNODE pTail=pHead;
pTail->pNext=NULL;
printf("请输入链表的长度:");
scanf("%d",&len);
for(i=0;i<len;++i)
{
  printF("请输入第%d个数的值:",i+1);
  scanf("%d",&val);
        PNODE pNew=(PNODE)malloc(sizeof(NODE));
  if(NULL==pNew)
  {
   printf("分配失败,程序终止!\n");
   exit(-1);
  }
  pNew->Date=val;
  pTail->pNext=pNew;
  pNew->pNext=NULL;
  pTail=pNew;
}

return pHead;
}
void traverse_list(PNODE pHead)
{
PNODE p=pHead->pNext;
while(NULL!=p)
{
  printf("%d",p->Date);
  p=p->pNext;
}
printf("\n");

}

这个代码中的这段求详解。

pNew->Date=val;
  pTail->pNext=pNew;
  pNew->pNext=NULL;
  pTail=pNew;

最佳答案

查看完整内容

要把新分配的pnew结点给串起来需要两步: 1、将前序结点的pnext指向pnew,即ptail->next=pnew;2、将新增的pnew设为尾项,即pnew->pnext=NULL; 进入for的下一次循环时,更新ptail跟踪指针:ptail=pnew;
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-12 19:26:51 | 显示全部楼层

要把新分配的pnew结点给串起来需要两步:
1、将前序结点的pnext指向pnew,即ptail->next=pnew;2、将新增的pnew设为尾项,即pnew->pnext=NULL;
进入for的下一次循环时,更新ptail跟踪指针:ptail=pnew;
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-12 22:10:03 | 显示全部楼层
1。新分配的节点的Date,设为指定的值。
2。链表尾部的pNext指向pNew(也就是新的区块)
3。将pNew的pNext设为空,也就是不指向(没有这一条,这个指针会乱指)
4。将尾部指向pNew


另外,我觉得是Data(数据),而不是Date(日期)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2013-8-13 00:43:55 | 显示全部楼层
565123 发表于 2013-8-12 22:10
1。新分配的节点的Date,设为指定的值。
2。链表尾部的pNext指向pNew(也就是新的区块)
3。将pNew的pNex ...

我想知道这四部是如何将PNew 串起来的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-13 10:16:15 | 显示全部楼层
eg.png


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-17 07:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表