用 C++ 编写一个程序,在给定的单向链表的开头插入一个节点
链表是一种线性数据结构,具有多个相互连接的节点。每个节点由两个字段数据字段和下一个节点的地址组成。
假设我们给出了一个单向链表,任务是在给定链表的开头插入一个节点。例如,
输入1−1→2→3→4
在给定链表的开头或开头插入“5”。
输出−5→1→2→3→4
说明-在链表的开头插入节点后,它会将链表打印为5→1→2→3→4。
解决这个问题的方法
最初,我们给出了一个由节点组成的链表。每个节点都包含到下一个节点的数据和地址。
由于我们已经创建了一个节点,因此我们将创建一个函数,它将头节点的地址作为参数和我们必须在链表开头插入的数据并在开头插入数据。现在将头部指向新插入的节点。
函数insertAthead(node*&head,intdata)获取头节点的地址和我们必须插入的数据。
创建一个新节点并将数据插入其中。
将头部移动到新创建的节点。
打印链表。
示例
#include输出结果using namespace std; class node{ public: int data; node*next; node(int d); data=d; next= NULL; } }; void insertAthead(node*&head, int data){ node*n= new node(data); n->next= head; head= n; } void print(node*head){ while(head!=NULL){ cout< data<<"->"; head= head->next; } } int main(){ node*head= NULL; insertAthead(head,5); insertAthead(head,2); insertAthead(head,8); insertAthead(head,3); print(head); }
运行上面的代码将生成输出,
3→ 8→ 2→ 5 →
在链表的开头插入节点3、8、2和5,它将生成输出为−3→8→2→5→。