一、链表的概念
链表是由一系列结点组成的,每个结点又由两部分构成:一部分为数据域,用来保存用户需要用到的数据,它可以由多个数据项构成;另一部分为地址域,它是指向下一个结点的地址指针,用来保存下一结点的地址。
二、单链表的定义以及使用
struct node
{
int num;
struct node *next; //定义指向结构体自身的指针
};
链表操作:
①建立一个链表;
②输出链表中的数据;
③往链表中插入一个结点;
④从链表中删除一个结点。
三、用指针处理单向链表
#include <stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};
struct node *creat(struct node *head)
{
struct node *p1, *p2;
p1 = (struct node*) malloc(sizeof(struct node));
p2=p1;
scanf("%d", &p1 -> data);
p1 -> next = NULL;
while(p1 ->data!= 0)
{
if(head == NULL) head = p1;
else p2 -> next = p1;
p2 = p1;
p1 = (struct node *)malloc(sizeof(struct node));
scanf("%d", &p1 -> data);
}
p2->next = NULL;
return head;
}
void print(struct node *head)
{
struct node *temp;
temp = head;
while(temp != NULL)
{
printf("%6d", temp -> data);
temp = temp -> next;
}
printf("\n");
}
int main()
{
struct node *head; //定义头指针
head = NULL; //建一个空表
head = creat(head); //创建单链表
print(head); //打印单链表
return 0;
}
程序运行结果如下:
1 2 3 4 5 6
1 2 3 4 5 6
四、共用体
C语言提供了一种构造类型的数据——共用体,它和结构体类似,也 是一种由用户自己定义的数据类型,也可以由若干不同类型的数据组合而 成,组成共用体的若干个数据也称为其成员。和结构体不同的是,结构体 变量每个成员分别占有各自的内存单元,共用体变量各个成员都从同一 地址开始存放,即成员间互相覆盖。
先定义共用体类型,再定义共用体变量。一般格式为:
共用体类型名 变量名列表;
union data
{
int i;
char c;
float f;
};
union data d1,d2;
关注我 下篇文章继续讲共用体