怎样在结构体中定义链表?

我想设计一个通讯录的C程序,用结构体和链表来做

第1个回答  2013-09-13
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//定义结构
struct student
{
char name[20];
char address[50];
struct student * NEXT;
};
typedef struct student NODE;
typedef NODE * LINK;

void main()
{
char na[20],ad[50];
int n=3;
LINK head,pointer,newp;
//创建头结点数据
head=(LINK)malloc(sizeof(NODE));
if(head==NULL){printf("内存分配失败!");}
else
{
printf("输入姓名:");
scanf("%s",&na);
strcpy(head->name,na);

printf("输入地址:");
scanf("%s",&ad);
strcpy(head->address,ad);

head->NEXT=NULL;
}
pointer=head;
//创建余下的数据
while(n>1)
{
newp=(LINK)malloc(sizeof(NODE));
if(newp==NULL){printf("内存分配失败!");}
else
{
printf("输入姓名:");
scanf("%s",&na);
strcpy(newp->name,na);

printf("输入地址:");
scanf("%s",&ad);
strcpy(newp->address,ad);

newp->NEXT=NULL;//新数据的指针指向空
pointer->NEXT=newp;//指针指向新结点
pointer=newp;//指示器指向新的结点
n--;
}
}
pointer=head;//将指针指向头结点
while(pointer->NEXT!=NULL)//循环显示通信录
{
printf("姓名:%s 地址:%s\n",pointer->name,pointer->address);
pointer=pointer->NEXT;
}
printf("姓名:%s 地址:%s\n",pointer->name,pointer->address);//显示最后一条记录
}
第2个回答  推荐于2016-08-22
struct name1
{
****定义一写你结构体中的一些参数
linklist linklist1;//在结构体中定义链表
}
strcut linklist
{
***定义你链表中的一些参数
linklist * next;//指向链表的指针
}本回答被网友采纳
第3个回答  2013-09-13
这样就可以:

struct List
{
char name[20];
char phone[20];
bool sex;
int age;
struct List *next; //定义结构型指针成员
};
第4个回答  2021-03-29

链表:一种计算机数据结构

相似回答