定义链表的数据结构
typedef struct _LinkNode { int data; //节点的数据 struct _LinkNode* next; //节点的指针区域 }LinkNode,LinkList; //链表节点、链表
构造一个空链表的方法
bool InitList(LinkList* &L) //构造一个空的链表L { L = new LinkNode; if (!L) return false; //生成节点失败 L->next = NULL; return true; }
前插法插入一个节点
//前插入法 bool ListInsert_front(LinkList*& L, LinkNode* node) { if (!L || !node) return false; node->next = L->next; L->next = node; return true; }
举个例子:
现在有一个空链表L,一个节点node1,现在要用前插入法,将node1插入到链表中,
第一步
node->next = L->next;
两个值都是null,这一步没实际意义,
第二部:
L->next = node;
现在已经利用前插入法,将node1插进了链表L。
现在又有一个新的节点,node2,我们用前插入法,将node2插入到链表L中:
目前的状态,有一个链表L,链表里有两个节点,还有一个新节点node2
第一步
node->next = L->next;
第二步
L->next = node;
这样,我们就把节点node2,也用前插入法,插入到了链表L中!