我基本上有两个查询。首先这个代码工作正常我只想打印结果,第二个程序只输入一个记录。我想保存一份完整的通讯录,如姓名联系人。为此我必须为每个字段提供单独的结构指针?请帮帮我。
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *link;
} *head=NULL;
void inserfirst();
int main()
{
insertfirst();
getch();
return 0;
}
void insertfirst()
{
int item;
struct node *ptr;
scanf("%d",&item);
if (head==NULL) {
head=(struct node*)malloc(sizeof(struct node));
head->data=item;
head->link=NULL;
} else {
ptr=head;
head=(struct node*)malloc(sizeof(struct node));
head->data=item;
head->link=ptr;
}
}
答案 0 :(得分:0)
解决您的问题:
一般来说,保留多个信息位(名称,数字,地址等)的方法是将它们包含在节点结构中,如:
struct node
{
int data;
char name[50];
char phone[20];
struct node *link;
} *head=NULL;
这是一个联系人列表,每个节点都有联系人详细信息,该列表包含多个联系人。
要打印这样的列表,可以遍历列表并打印每个节点,具体来说:
答案 1 :(得分:0)
您也可以使用
typedef struct contact { int data; char name[40]; char add[90]; }book; stuct node { book b; struct node*link; }*head=NULL;