C语言链表的简单的尾插法
今天简单的总结一下关于C语言的尾插法,简单来说就是在一堆的简单的数据节点当中,在一个指定的位置后方插入你想要插入的数据!开整!(自己学习也不是很好哈!,请见谅) 第一步:创建一个链表
struct test
{
int data;
struct test *next;
};
第二步:封装打印函数(其实也有其他的打印输出的方式,比如之前讲的printf方法,感兴趣可以参考我之前发的,这里只是为了简单的写法哈!) 参考链接:(只是参考哈!) C语言链表简单的结构
void Printftest(struct test *head)
{
struct test *p = head;
while(p != NULL)
{
printf("%d\n",p->data);
p = p->next;
}
}
首先由链表头开始遍历,一直走到为NULL,(相当于数组的遍历!)
第三步:封装尾插函数
int insertbehind (struct test *p,int data,struct test *new)
{
while (p != NULL)
{
if(p->data == data)
{
new->next = p->next;
p->next = new;
return 1;
}
p = p->next;
}
return 0;
}
new是一个新的节点,也就是在链表当中需要插入的数据,同样的。当找到我们需要插入的数据的地方的时候,就使用new来代替之前的p->next,由new->next走向,成功就返回1,失败返回0(插入的数据在之后的main函数当中会有的)。 第四步:主函数
int main()
{
struct test t1 = {9,NULL};
struct test t2 = {99,NULL};
struct test t3 = {999,NULL};
struct test t4 = {9999,NULL};
struct test t5 = {99999,NULL};
t1.next = &t2;
t2.next = &t3;
t3.next = &t4;
t4.next = &t5;
struct test new = {888,NULL};
insertbehind(&t1,99,&new);
Printftest(&t1);
return 0;
}
到主函数的这一步来说的话,基本上八九不离十了,这个就是一个很简单的C语言链表的尾插法。 调用之前封装的函数就可以了。
最后的实现效果:
OK!这个就是本文章的全部内容了 有什么好的想法或者意见可以评论区留言哈!大家一起交流学习!
|