问一个自定义链表的问题,马上给分◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎◎

popyyb popyyb 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我自己写了一个简单的链表,但是为什么总不能把在main中生成的node插入到链表中,这是为什么,请看:
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<string.h>

struct PCB
{
char name[30];
int number;
};

struct Node
{
PCB* plink;
Node* next;
};

Node* create(Node *head)
{
head->next=NULL;
head->plink=NULL;
return (head);
}

Node* createNewNode()
{
Node * newNode;
newNode=(Node *)malloc(sizeof(Node));
newNode->plink=(PCB *)malloc(sizeof(PCB));
char tempname[30]={'t','e','m','p','n','o','d','e'};
strcpy(newNode->plink->name,tempname);
//newNode->plink->name='aa';
newNode->plink->number=2;
newNode->next=NULL;
return newNode;
}

void AddNodes(Node *head, int n)
{
Node *p,*q;
q=head;
for (int i=1;i<=n;i++)
{
p=(Node *)malloc(sizeof(Node));
p->plink=(PCB *)malloc(sizeof(PCB));
cout<<"Set name and number"<<endl;
cin>>p->plink->name>>p->plink->number;
q->next=p;
q=p;
}/*endfor*/
p->next=NULL;

}

Node* create(Node *head,int n)
{
int i;
Node *p,*q;
if (n==0)
{
head->next=NULL;
head->plink=NULL;
return (head);
}/*endif*/
q=head;
for (i=1;i<=n;i++)
{
p=(Node *)malloc(sizeof(Node));
p->plink=(PCB *)malloc(sizeof(PCB));
cout<<"Set name and number"<<endl;
cin>>p->plink->name>>p->plink->number;
q->next=p;
q=p;
}/*endfor*/
p->next=NULL;
return(head);
}

void AddNodeToList(Node *head, Node *newNode)
{
Node *p;
p=head->next;


while(p != NULL)
{
p=p->next;
}
p=newNode;
p->next=NULL;
}

int getSize(Node *head)
{
Node * p = head->next;
int i = 0;
while(p != NULL)
{
i++;
p=p->next;
}
return i;
}

void print(Node *head)
{
Node *p = head->next;

if (p == NULL)
{
return;
}
while(p!= NULL)
{
cout<<p->plink->name<<" "<<p->plink->number<<endl;
p=p->next;
}
}

void main()
{
Node* a;
a=(Node *)malloc(sizeof(Node));
create(a);
int size = getSize(a);
cout<<"size= "<<size<<endl;
Node *temp;
//temp=(Node *)malloc(sizeof(Node));
temp=createNewNode();
AddNodeToList(a,temp);
size = getSize(a);
cout<<"size= "<<size<<endl;
print(a);
}
两个输出都是0,不知道为什么,请指教!
...全文

相关推荐

链表归并的操作,将两个链表合并成一个链表

在实际的编程练习和面试中,链表归并是常被考察的问题,因此熟练掌握这一技巧对于提升编程技能至关重要。

zhanghaiyoudeerzi

两个无序链表合并成一个有序链表

总的来说,将两个无序链表合并成一个有序链表是数据结构和算法的经典问题,而在MFC环境下实现这一过程则涉及到了可视化编程技巧。

弩马天涯

将两个递增的链表合并为一个非递减的链表

### 题目解析:将两个递增的链表合并为一个非递减的链表#### 一、问题背景与需求分析本题目要求实现的功能是:输入两个递增的链表,然后通过程序对这两个链表进行排序(虽然在实际应用中,递增的链表已经有序

lxswangyunhe

c代码-将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

本文介绍了一个算法问题的解决方案,即如何将两个已排序的链表合并成一个新的升序链表。首先定义了链表节点结构体ListNode,并实现了创建链表和合并链表的函数。通过示例链表的创建和合并操作,展示了算法的

weixin_38556668

Josephus问题C++单循环链表实现

**单循环链表**在解决Josephus问题时,单循环链表是一种常用的数据结构。单循环链表每个节点包含数据(代表参与者)和指向下一个节点的指针,最后一个节点的指针会链接回第一个节点,形成一个循环。

chansonzhang
评论 9
收藏 已收藏
分享
返回顶部
popyyb
C语言 70,040 成员 243,237 内容