有什么做网站的公司,宁波做外贸网站建设,怎么挑选网站建设公司,google广告投放技巧首先要说明几个概念#xff1a;
头结点#xff0c;是单链表的头结点#xff0c;一般不存储数据#xff0c;它指向单链表的第一个实际元素。但它不仅仅只是一个普通的结点#xff0c;它包含了整个链表的结构#xff0c;也就是包含了所有插入的结点
#includestdio.h
头结点是单链表的头结点一般不存储数据它指向单链表的第一个实际元素。但它不仅仅只是一个普通的结点它包含了整个链表的结构也就是包含了所有插入的结点
#includestdio.h
#includestdlib.htypedef struct LNode {int data;struct LNode *next;
}LNode *LinkList;// 头插法建立一个单链表在单链表的头部插入结点从而建立一个单链表。
// 参数是一个LinkList类型的引用L表示链表的头结点
LinkList head_insert(LinkList L) {LNode *s;int x;L (LinkList)malloc(sizeof(LNode)); // 创建头结点用malloc函数给头结点申请一个存储空间L-nextNULL; // 初始化为空表由于头结点指向链表的第一个实际元素所以L-nextNULL就表示链表为空scanf(%d,x); // 用scanf函数输入一个整数x只要x!9999就执行循环体 while(x!9999) {s(LNode *)malloc(sizeof(LNode)); // 创建新结点用malloc函数给新结点分配一个存储空间 s-datax; // 将输入的x的值赋值给s-data即s的数据域 s-nextL-next; // 头结点L指向链表的第一个元素将L的指针指向赋值给s也就是说现在s指向了链表的第一个元素 L-nexts; // 再将s赋值给L-next也就是说头结点L指向了s头结点L只会指向链表的第一个实际元素所以s现在成为了链表的第一个元素头插法结束 scanf(%d, x); /*** 再用scanf函数输入一个整数x然后走while的条件判断* 如果true就接着执行循环体依次往单链表的头部插入新结点* 每次插入的新结点都成为链表的第一个结点而原来的结点依次向后移动* 如果false就返回L */ } return L; // L虽然只是整个链表的头结点但它不仅仅是一个普通的结点它包含了整个链表的结构也就是包含了所有插入的结点
}