1

我基本上有两个疑问。首先,这段代码运行良好,我只想打印结果,其次,这个程序只输入一条记录。我想保存一个完整的通讯录,比如姓名联系人。为此,我必须为每个字段提供单独的结构指针?请帮帮我。

#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;
     }
}
4

2 回答 2

0

要解决您的问题:

一般来说,保留多位信息(名称、数字、地址等)的方法是将它们包含在节点结构中,例如:

struct node
{
   int data;
   char name[50];
   char phone[20];
   struct node *link;
} *head=NULL;

这是一个联系人列表,每个节点都有联系人详细信息,列表包含多个联系人。

要打印这样一个列表,需要遍历列表并打印每个节点,具体来说:

  1. 从头开始
  2. 如果当前节点为空,那么我们就在最后,所以退出
  3. 打印当前节点的内容
  4. 将当前节点设置为下一个节点(即current->link)
  5. 返回第 2 步
于 2012-12-08T08:23:46.157 回答
0

你也可以用这个

   typedef 结构体联系方式
    {
     整数数据;
    字符名称[40];
    字符添加[90];
    }书;
    结构节点
    {
    b书;
    结构节点*链接;
    }*头=空;
于 2012-12-09T06:16:11.363 回答