1.编程实现一个单链表的建立
typedef struct node
{
int data;//结点内容
node *next;//下一个节点
}node;
单链表的创建:
//创建单链表
node *create()
{
int i=0;//链表中数据的个数
node *head,*p,*q;
int x=0;
head=(node *)malloc(sizeof(node));//创建头结点
while(1)
{
printf("please input the data:");
scanf("%d",&x);
if(x==0)//data为0时创建结束
break;
p=(node *)malloc(sizeof(node));
p->data=x;
if(++i==1)
{
head->next=p;//链表只有一个元素,连接到head后面
}
else
{
q->next=p;//连接到链表尾端
}
q=p;//q指向末尾点
}
q->next=NULL;//链表的最后一个指针为NULL
return head;
}
2.编程实现一个单链表的测长 ————–
int length(node *head)
{
int len=0;
node *p;
p=head->next;
while(p!=NULL)
{
len++;
p=p->next;
}
return len;
}
由于链表末尾节点的next指针被置为NULL,因此可以使用while循环遍历链表所有节点,当遇到NULL时结束循环。