单链表操作文档格式.docx
《单链表操作文档格式.docx》由会员分享,可在线阅读,更多相关《单链表操作文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
stdio.h>
malloc.h>
typedefstruct
{
intchengji[3];
intnum;
}students;
typedefstructNode
studentsS;
structNode*next;
}LNode,*LinkList;
LinkListInitList()//生成一个带有头节点的空单链表
{
LinkListM;
M=(LNode*)malloc(sizeof(LNode));
M->
next=NULL;
returnM;
}
LinkListCreat(LinkListM,inti)//链表初始化
{
intj,l;
LNode*N,*P;
P=M;
for(j=0;
j<
i;
j++)
{N=(LNode*)malloc(sizeof(LNode));
N->
printf("
输入第%d个学生的学号:
"
j+1);
scanf("
%d"
&
N->
S.num);
输入第%d个学生的成绩:
for(l=0;
l<
3;
l++)
scanf("
S.chengji[l]);
P->
next=N;
P=N;
}
PrintLNode(LinkListM)//输出链表
intj;
LNode*P;
printf("
全部学生的信息为:
\n"
);
while(P->
next!
=NULL)
{
P=P->
next;
%d"
P->
for(j=0;
printf("
S.chengji[j]);
intpankong(LinkListM)//判断链表是否为空
if(M->
next==NULL)
表为空!
return0;
else
表非空!
return1;
intLENGTH(LinkListM)//求链表的长度
intlength=0;
length++;
returnlength;
}
LinkListInsertNode(LinkListM,intj)//在链表中插入一个节点
{
LNode*P,*Q=M,*N=M;
inti;
P=(LNode*)malloc(sizeof(LNode));
S.num=j;
请分别输入您要插入的学生的成绩信息"
for(i=0;
i<
i++)
P->
S.chengji[i]);
if(Q->
Q->
next=P;
else
while(Q->
next->
S.num<
S.num&
&
Q->
Q=Q->
if(Q->
{
P->
next=Q->
Q->
}
next==NULL)
P->
intDeleteLNode(LinkListM,into)//删除链表中的某个节点
LNode*Q=M,*P;
next==NULL)return0;
S.num!
=o&
Q=Q->
S.num==o)
P=Q->
return2;
searchLNode(LinkListM,inth)//查找某个同学的成绩
LNode*P=M,*Q;
Q=(LNode*)malloc(sizeof(LNode));
=h&
if(P->
您要查找的学号为%d的学生的成绩为:
h);
您查找的学生不存在!
voidmain()
inti,length,k,j,o,l,h;
M=InitList();
输入学生的个数:
scanf("
i);
M=Creat(M,i);
k=pankong(M);
if(k)PrintLNode(M);
length=LENGTH(M);
表长为:
%d\n"
length);
请输入您要插入的学生的学号:
j);
M=InsertNode(M,j);
length++;
PrintLNode(M);
请输入您要删除的学生的学号:
o);
l=DeleteLNode(M,o);
if(l==0)printf("
表为空,请确认!
if(l==1)
删除成功!
if(l==2)printf("
您要删除的学生不存在,请确认!
请输入您要查找的学生的学号:
h);
searchLNode(M,h);