C语言单链表创建函数详解 - aaa(LinkList &L, int n)
该函数的功能是创建一个含有n个元素的单链表,并且每个节点的数据域由用户输入。最后返回这个单链表的头指针L。
typedef struct LNode{
int data;
struct LNode *next;
}LNode , *LinkList;
void aaa (LinkList &L, int n){
LNode *p;
L= (LinkList) malloc(sizeof(LNode)) ;
L->next = NULL;
for( int i=n; i>0; --i ) {
p = (LinkList) malloc(sizeof(LNode));
scanf('%d',&p->data);
p->next=L->next;
L->next = p;
}
}
函数功能解析:
-
typedef struct LNode{...} LNode , *LinkList;定义了一个名为LNode的结构体,用于表示单链表的节点。结构体包含两个成员:data用于存储数据,next指向下一个节点。使用typedef定义了两个别名:LNode用于表示单个节点,LinkList用于表示指向链表头的指针。 -
L= (LinkList) malloc(sizeof(LNode)) ;在函数开始,为链表头节点分配内存空间。 -
L->next = NULL;将头节点的next指针指向NULL,表示链表为空。 -
for( i=n; i>0; --i ) {...}循环n次,创建n个节点。 -
p = (LinkList) malloc(sizeof(LNode));为每个节点分配内存空间。 -
scanf('%d',&p->data);从用户输入数据,并将其存储到节点的data域。 -
p->next=L->next;将新节点的next指针指向当前头节点的下一个节点,即插入到链表头部。 -
L->next = p;将头节点的next指针指向新创建的节点。
总结:
该函数通过循环创建n个节点,并将每个节点插入到链表头部,从而构建了一个含有n个元素的单链表。最后函数返回指向链表头的指针L。
原文地址: https://www.cveoy.top/t/topic/nBKh 著作权归作者所有。请勿转载和采集!