一、结构体定义
typedef struct ListNode//定义结点
{
DataType data;
struct ListNode* next;
}ListNode,*PListNode;
typedef struct PList//定义一个成员是指向结点的指针的结构体
{
PListNode PHead;
}PList,*PList;
二、代码实现:
思路:在当前结点之前插入一个结点,其实就是在当前结点之后插入一个结点,然后将插入的结点和当前结点的值作交换;即可达到目的
//3.当前结点前插入一个数据
void InsretFrontNode(PListNode pos,DataType x)
{
PListNode NewNode=NULL;
PListNode tmp=NULL;
assert(pos);
NewNode=BuyNode(pos->data);//以当前结点值创建新结点;
pos->data=x;//改变当前结点值为插入值
tmp=pos->next;//记录当前结点的的下一个结点的指针
pos->next=NewNode;//将新结点链接在当前结点后面
NewNode->next=tmp;//当新结点后面链接tmp结点
}