C语言中链表的创建

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言数据类型的使用

struct student //这里struct是保留字,student是结构体名;它们合起来就是结构体类型名{ int num;

char name[20];

char sex;

int age;

float score;

char addr[30];

}; //{}之间是结构体成员表

struct student student1, student2; //用以上的结构体类型名定义两个变量

struct student stu[20]; //用以上的结构体类型名定义一个20个元素的数组

以上说明也可缩写成:

struct student

{ int num;

char name[20];

char sex;

int age;

float score;

char addr[30];

}student1, student2, stu[20];

使用typedef定义类型

typedef struct

{ int num;

char name[20];

char sex;

int age;

float score;

char addr[30];

}STUDENT; //定义一个结构类型名

STUDENT student1, student2, stu[20]; //用结构类型名定义变量

结构变量的引用

student1.num=12;

=”马大哈”;

stu[10].score=88;

stu[1].sex=’M’;

student1.addr=”北京市丰台区富丰路7号”;

看typedef的使用

typedef int INTEGER;

typedef float REAL;

typedef int ARR[10];

新类型名的引用

INTEGER i, j;

REAL a, b;

ARR s, t; //这里s, t是有10个元素的数组

简单链表

#define NULL 0

struct student

{long num;

float score;

struct student *next;

};

main()

{struct student a,b,c, *head, *p;

a.num=99101; a.score=89.5;

b.num=99103; b.score=90;

c.num=99107; c.score=85;

head=&a;

a.next=&b;

b.next=&c;

c.next=NULL;

p=head;

do

{cout<num<score;

p=p->next;

} while (p!=NULL);

}

建立动态链表

两个重要函数

malloc——申请分配某个长度的内存区。格式:void *malloc(unsigned size) calloc——申请n个某长度的内存区。格式:void *calloc(unsigned n, unsigned size) free——释放某个内存区。格式:void free(void *p)

#define NULL 0

#define LEN sizeof(struct student)

struct student

{long num;

float score;

struct student *next;

};

int n;

struct student *creat(void)

{struct student *head;

struct student *p1, *p2;

n=0;

p1=p2=(struct student *)malloc(LEN);

scanf(p1->num, p1->score);

head=NULL;

while (p1->num!=0)

{n++;

if (n==1) head=p1;//插入链表上的第一个结点else p2->next=p1;//插入链表上的其他结点

p2=p1;

p1=(struct student *)malloc(LEN);

scanf(p1->num, p1->score);

}

p2->next=NULL;

return(head);

}

相关文档
最新文档