首先创建一个新的节点newnode,在节点pos之前插入新的节点,因为不能遍历链表,所以不能用常规的插入操作来实现,我们先记录pos的下一个节点next,让新的节点的数据为pos节点的数据,再让pos节点的数据为新的节点的数据,这样,只要将新的节点链接到pos节点后面就可以实现。
typedef struct SListNode
{
struct SListNode* _next;
DataType _data;
}SListNode;
void SListInsertFrontNode(SListNode* pos, DataType x)
{
assert(pos);
SListNode* newNode = BuySListNode(x);
SListNode* next = pos->_next;
newNode->_data=pos->_data;
pos->_data = x;
newNode->_next = next;
pos->_next = newNode;
}