//利用指针解决数据存储在链表上,无法输出的问题
//链表的构建,以及链表的访问的实现
//指针的利用
//指针、链表、链表的存储、链表的访问
#include <stdio.h>
#include <stdlib.h>//导入一个c库文件为下边malloc动态分配地址、null空地址
#define max 10 //第一一个Max的值
typedef struct Lnode{ //定义链表,链表的结构
int date;
struct Lnode *next;
}Lnode;
//把数组中得数据存储到链表上,链表的存储(调用函数)
int *create(Lnode *l,int m[],int n){
Lnode *r,*s; // 第一两个链表指针
l = (Lnode *)malloc(sizeof(Lnode)); // 动态分配一个链表节点l,头指针。
r = l; // 把头指针赋给r,把头指针保存起来。
l->next = NULL; // 头指针的初始化定义
for (int i = 1; i<=n; i++) { // 数据链表的存储
s = (Lnode*)malloc(sizeof(Lnode));
printf("请输入数组m中第%d个数字:\n",i);
scanf("%d",&m[i]);
s->date = m[i]; // 利用尾插法建立数组链表
r->next = s;
r = r->next;
}
r->next= NULL;
return l; // 返回链表的头指针
}
//输出链表上得数据(调用函数)
void prin(Lnode *l){
l = l->next;
for (int j= 1; j<=10; j++) {
printf("%d\n",l->date);
l = l->next;
}
}
//主函数
int main(int argc, const char * argv[])
{
Lnode *l;
int m[max];
int n = 10;
Lnode *p =create(l, m, n); // 调用链表建立函数
prin(p); // 调用链表输出程勋
// insert code here...
return 0;
}