混子来了
单链表的创建:
首先单链表的定义就不再赘述了,本文利用带头节点,尾插法的方法进行创建,同时注意头节点在此的重要性,即所有操作都要通过头节点来实现,头节点的值绝对不能被改变
- 结点的定义
struct ListNode//定义节点
{
int m_key;
ListNode* next;
}A;
- 由于我们需要一个头节点,所以我们就先创建一个头节点
ListNode* head = NULL;
head = new ListNode;
head->next = NULL;
- 接下来就是创建一个单链表了
void createList(ListNode* pHead,int n)//创建单链表
{
ListNode* p = pHead;//不能改变头节点
for (int i = 1; i <= n; ++i)
{
ListNode* pNewNode = new ListNode;//申请一个新节点
cin>>pNewNode->m_key; // 将新节点的数据域赋值
pNewNode->next = NULL;//新节点的指针域置为空
p->next = pNewNode; // 上一个节点的指针域指向这个新节点
p = pNewNode; // p节点指向这个新节点
}
}
单链表的输出:
单链表的输出比较简单,就是利用头节点,找到第一个节点,当节点不为空时,输出数据域,然后节点后移
void print(ListNode*phead)
{
ListNode*p=phead->next;
while