33,311
社区成员
发帖
与我相关
我的任务
分享
void Insert_LinkList(NODE *head, NODE *pnew, int i)
{
NODE *p;
int j;
p = head;
for (j = 0; j < i && p != NULL; j++) //将p指向要插入的第i个节点
p = p->next;
if (p == NULL) //表明链表中第i个节点不存在
{
printf ("the %d node not foundt!\n", i);
return;
}
pnew->next = p->next ; //将插入节点的指针域指向第i个节点的后继节点
p->next = pnew; //将第i个节点的指针域指向插入节点
}
#include<stdio.h>
#include<stdlib.h>
#include"def.h"
struct Grade_Info
{
int score;
struct Grade_Info *next;
};
typedef struct Grade_Info NODE,*PNODE;
NODE *Create_LinkList ();
void Display_LinkList(NODE *head) ;
void Insert_LinkList(NODE *head, NODE *pnew, int i);
void Display_LinkList(NODE *head)
{
NODE *p;
for (p = head->next; p != NULL; p = p->next)
printf ("%d ", p->score);
printf ("\n");
}
int main()
{
PNODE pHead=NULL;
PNODE pnew=NULL;
pHead=Create_LinkList();
printf("开始的数据:");
Display_LinkList(pHead);
Insert_LinkList(pHead, pnew, 2);
printf("添加后的数据:");
Display_LinkList(pHead);
return 0;
}