单链表的头插尾插
#include<malloc.h>
typedef struct node//规范节点形式
{
char name[20];
int id;
struct node* next;//指向下一节点
}NODE;
//初始化
NODE* init()
{
NODE* p = (NODE*)malloc(sizeof(NODE));//申请一个节点(节点p)
p->next = NULL;//next为p指针域存放的指针
return p;
}
//插入
void insert(NODE* head, NODE data)
{
NODE*p= (NODE*)malloc(sizeof(NODE));
*p = data;
//指针的赋值 头插
//p->next = head->next;//新节点的下一个是头节点的下一个
//head->next=p;
//尾插
NODE* q = head;
while (q->next != NULL)
{
q = q->next;
}
p->next = q->next;
q->next = p;
}
}
int main()
{
NODE* head = init();//
NODE myNODE;
while (1)
{
scanf("%d %s", &myNODE.id, myNODE.name);
if (myNODE.id == 0)break;
insert(head, myNODE);
}
printf(head);
getchar();
return 0;
}
相关推荐
C++使用模板实现单链表(类外实现)
主要为大家详细介绍了C++使用模板实现单链表的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java之单链表篇!!! (无头单向非循环链表实现打印、头插、尾插、任意插入、查找、删除某一关键字、删除所有所选关键字、清空单链表等基本操作)
单链表代码虽然不太难但是逻辑思维较强。 首先对单链表的结构进行介绍,单链表是由很多个节点一个接一个串接起来的,每个节点包含两部分,数据部分和地址部分,我们这里讲的是无头的单链表,所以没有头节点,每个节点存储的是本身的数据和下一个节点的地址。 如图,每个节点对应下面的地址。那第一个节点的地址设置为0x111,节点中存储的数据为1,存储的下一个节点的地址为0x22,直到最后一个节点因为后面没有节点了所以存储的地址为null(空)。 对于单链表的操作具体有以下一些步骤,(单链表是一种类型,也是由一个一个的节点构成,所以我们在进行所有的操作的时候,首先定义一个节点类,这类呢要包括图上所示的数据、ne
C语言 数据结构之单链表基本操作
单链表的各种操作,适合于初学,也适合于复习 单链表操作介绍 1. 创建头节点 2. 创建有数据节点 3. 判断链表是否为空 4. 遍历链表(有头节点链表) 5. 遍历链表(无头节点链表) 6. 头插、头删、尾插、尾删 7. 按照顺序插入(自带排序) 8. 按照位置插入数据 9. 按照数据修改数据 10. 按照节点位置查找数据 11. 判断某个值是否在当前链表中(按数据查找数据) 12. 面试中常见:单链表翻转 13. 已知两个链表head1和head2各自有序,请把它们合并成一个链表依然有序,要求用递归方法
单链表头尾插法详解[项目代码]
本文详细介绍了单链表的头插法和尾插法,包括带头结点和不带头结点的实现方式。头插法将新节点插入到链表的表头,核心代码为s->next=L->next; L->next=s;,并强调了代码顺序的重要性。尾插法将新节点插入到链表的表尾,需要维护一个尾指针r,核心代码为r->next=s; r=s;。文章通过动图、图解和代码示例,清晰地展示了两种方法的实现过程,并提供了完整的代码和运行结果图,帮助读者深入理解单链表的操作。
数据结构顺序表和链表(超详细)
此压缩包为1、无头+单向+非循环链表增删查改实现// 动态申请一个结点// 单链表打印// 单链表尾插// 单链表的头插// 单链表的尾删// 单链表头删// 单链表查找// 单链表在pos位置之后插入x// 单链表删除pos位置之后的值//销毁2、带头+双向+循环链表增删查改实现// 创建返回链表的头结点.// 双向链表销毁// 双向链表打印// 双向链表尾插// 双向链表尾删// 双向链表头插// 双向链表头删// 双向链表查找// 双向链表在pos的前面进行插入// 双向链表删除pos位置的结点


