c语言中结点
① c语言指针和结点之间的区别是什么
指针是指针,它是存放地址的,而链表中的结点使用了指针表示每一个结点的地址,比如你在创建一个结点时struct student{ char name[20]; int age; struct student *next; }(struct student)malloc(sizeof(struct student));这就是你创建的一个结点的大小而成员next则是一个指针用来指向下一个节点的地址,所以每一个结点存放的是一个student的信息。
② C语言中结点是什么
1、在数据结构的图形表示中,对于数据集合中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,简称结
点。在C语言中,链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据;二为下一个结点的地址,即指针域和数据域。数据结构中的每一个数据结点对应于一个储存单元,这种储存单元称为储存结点,也可简称结点。
2、举例说明如下:
1)对于线性表存储结构:
1, 2, 3, 4, 5, ......, k, k+1, .......
则结点k+1的直接前驱结点为结点k
2)对于链表存储结构
// 结点的定义
struct node
{
int data; // 数据域
struct node *next; // 指针域
};
struct node *Head; // Head表示链表的头结点,则Head->next为头结点Head的后继结点;Head为Head->next的前驱节点
③ C语言求树中的叶子结点数
有从上至下和从下至上两种方式可以统计树的节点数。
设叶子节点(度为0的节点)数为x:
从上至下时,度为n的节点有n个子节点,再加上根节点,总结点数量为1+4×1+3×2+2×3+1×4+0×n=21
从下至上时,节点数为度为0~4的所有节点数相加,总节点数量为1+2+3+4+n=10+n
所以有21=10+n,得n=11.