我有不同的不同链表的结构,都有不同的数据类型变量。喜欢:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct scorel {
int no;
struct scorel *rp;
};
struct namel{
char a[10];
struct scorel *rp;
struct namel *dp;
};
void main(){
int i,j,n,m;
struct namel *temp,*head,*end,**s;
struct scorel *tmp,*had,*nd;
clrscr();
printf("enter no of students");
scanf("%d",&n);
end=NULL;
for(i=0;i<n;i++){
temp=(struct namel*)malloc(sizeof(struct namel));
printf("enter name\n");
scanf("%s",temp->a);
temp->rp=NULL;
temp->dp=NULL;
*(s+i)=temp;
if(end==NULL){
end=head=temp;
}
else {
end->dp=temp;
end=temp;
}
printf("enter no of scores");
scanf("%d",&m);
nd=NULL;
for(j=0;j<m;j++){
tmp=(struct scorel*)malloc(sizeof(struct scorel));
printf("enter score\n");
scanf("%d",&tmp->no);
tmp->rp=NULL;
if(nd==NULL){
nd=had=tmp;
temp->rp=tmp;
}
else {
nd->rp=tmp;
nd=tmp;
}
}
}
for(i=0;i<n;i++){
temp=*(s+i);
printf("%s-->",temp->a);
tmp=temp->rp;
while(tmp!=NULL){
printf("%d-->",tmp->no);
tmp=tmp->rp;
}
printf("\n");
}
getch();
}
任何宏可用于我可以使用相同的结构用于不同的不同链表。
我还看到了一系列链表,
struct node{
int data;
struct node *next;
}*head[5];
但仅此一点我们可以使用一种变量。 我希望每个链表都有不同类型的变量。
答案 0 :(得分:0)
您可以通过两种方式进行链接列表。
第一种方法是将if(b1)
字段与数据结构一起添加,然后您只能在一个列表中访问此结构
next
之后,当您将商品添加到关键列表时,您只需找到最后一项,然后设置struct myData {
struct myData* next;
int a;
char b;
float c;
}
和last->next = current
。
另一种可能性是分离数据结构和列表输入
current->next = NULL;
现在,要将数据添加到链接列表,您可以执行以下操作:
//Linked list structure
struct nodeEntry {
struct nodeEntry* next;
void* data;
};
struct myData {
int a;
char b;
float c;
};
在第二种情况下,链接列表中的每个项目都有自己的nodeEntry* ent = malloc(*ent);
ent->data = pointerToMyData;
ent->next = NULL;
//Now find the last item in linked list and do:
last->next = ent;
对象,这使您可以在多个链接列表中使用单个数据结构。
此方法称为多链表