欢迎使用CSDN-markdown编辑器

来源:互联网 发布:openwrt 修改mac wifi 编辑:程序博客网 时间:2024/06/07 03:59

动态链表的建立

    建立动态链表需要使用到**结构体**。c语言允许用户建立由不同类型数据组合而成的数据结构,称之为结构体。 1: 结构体的简介和使用    *struct 结构体名    {        成员列表    }变量名列表;*    例如:    ;
struct student{    int num;    char name[10];    float score;}student1,student2;

        这里我们就定义了一个名为student的结构体,这个结构体里面有num,name,score各种数据类型的数据,student1,student2便是student类型的结构体变量。那么我们怎么通过结构体变量使用结构体中的数据了?
       
       2:结构体变量的引用
       结构体变量的引用方式常用如下:
       结构体变量名.成员名
 例如:
 

student1.num=1;sum=student1.num+student2.num;//结构体变量的成员名可以像普通变量一样进行各种运算
此外还有结构体数组和结构体指针,与普通数组和指针答题相似,下面在介绍链表的建立的时候会稍微介绍以下结构体指针。

链表的建立
我们先来定义一个结构体:

struct student{int num;char name[];struct student * next;//这个是结构体指针的定义,形式上是不是和int * next,这种普通指针的定义类似}

接下来先给代码:

struct student * head ,*current,*prev;int i;for(i=0;i<3,i++)current=(struct student *)malloc (sizeof(struct student));input(current);if(i==0)head=current;elseprev->next=current;p=current;}p->next=NULL;

   首先我们给current结构体变量指针用malloc关键字分配了地址;
input函数是用来给current中的成员赋值。如果i=0;则创建的为head头指针,然后把current赋值给p,这时i不等于0了,新创建的current的结构体变量就赋值给p,也就是上一个current变量中的next结构体成员变量指针,这样就建立一个3个单位长度的链表,最后采用free关键字来释放节点,这里就不赘述了。由于本人也是c中新人,不足之处希望指出,谢谢!

0 0
原创粉丝点击