单链表的创建方式

来源:互联网 发布:淘宝嘉实多旗舰店 编辑:程序博客网 时间:2024/06/15 23:46

1.结构体定义:

typedef struct LNode{ElemType data; //数据域struct LNode  *next; //指针域}LNode,*LinkList;LinkList L;  //L为单链表的头指针

2.头插法建立单链表

LinkList CreateListF(){LinkList L = NULL; //空表LNode *s;int x; //设数据元素的类型为intscanf("%d",&x);while(x!=flag){s = (LNode *)malloc(sizeof(LNode));s->data = x;s->next = L;L = s;scanf("%d",&x);}return L;}

3.尾插法建立单链表

LinkList CreateListR1(){LinkList L = NULL;LNode *s,*r = NULL;int x; //设数据元素的类型为intscanf("%d",&x);while(x!=flag){s = (LNode *)malloc(sizeof(LNode));s->data=x;if(L == NULL){L = s; //第一个结点的处理}else{r->next = s;}r = s;scanf("%d",&x);}if(r != NULL)   //对于非空表,最后结点的指针域放空指针r -> next = NULL;return L;}

4.尾插法建立单链表(带头结点)

LinkList CreateListR2(){LinkList L = (LNode *)malloc(sizeof(LNode));L -> next = NULL;//空表LNode *s,*r = L;int x; //设数据元素的类型为intscanf("%d",&x);while(x!=flag){s = (LNode *)malloc(sizeof(LNode));s->data=x;r->next = s;r = s;scanf("%d",&x);}r -> next = NULL;return L;}