C语言链表问题
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int num;
char name[20];
}People;
typedef People datatype;
typedef struct node
{
char name[20];
datatype data;
struct node *next;
}LinkList;
//头插法建表
void CreateListF(LinkList *&head,datatype a[],int m,int n)
{
LinkList *p;int i;
head =(LinkList *)malloc(sizeof(LinkList));
head ->next=NULL;
for(i=m;i<n;i++)
{ p=(LinkList *)malloc(sizeof(LinkList));
p->data=a[i];
p->next= head ->next;
head ->next=p;
}
}
//初始化线性表
LinkList *InitList()
{
LinkList *head=(LinkList *)malloc(sizeof(LinkList));
head->next=NULL;
return head;
}
//输出线性表
void print(LinkList *head)
{
LinkList *p=head->next;
while(p!=NULL)
{
printf("%c",p->data);
p=p->next;
}
}
//主程序
int main(){
datatype People[12] ={
{101401,"雷震子"},
{100032,"姜子牙"},
{101674,"哪吒"},
{101982,"申公豹"},
{107431,"九尾狐"},
{100001,"天尊"},
{101009,"太乙"},
{101321,"杨戬"},
{101567,"黄飞虎"},
{108160,"纣王"},
{102456,"李靖"},
{102245,"土行孙"},
};
LinkList *L1,*L2,*L3;
L1=InitList();
L2=InitList();
L3=InitList();
CreateListF(L1,People,0,5);
CreateListF(L2,People,5,8);
CreateListF(L3,People,8,12);
print(L1);
print(L2);
print(L3);
}
输出结果:p..
(12个p)