数据结构C语言版 单链表源代码Word文件下载.docx
《数据结构C语言版 单链表源代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构C语言版 单链表源代码Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
voidinsert(structLNode**p,ElemTypex,inti);
voiddele(structLNode**p,inti);
voiddisplay(structLNode**p);
intlocate(structLNode**p,ElemTypex);
voidmain()
structLNode*head,*q;
/*定义静态变量*/
intselect,x1,x2,x3,x4;
inti,n;
intm,g;
chare,y;
setnull(&
head);
/*建设链表并设置为空表*/
printf("
请输入数据长度:
"
);
scanf("
%d"
&
n);
for(i=1;
i<
=n;
i++)
{
printf("
将数据插入到单链表中:
scanf("
y);
insert(&
head,y,i);
}/*插入数据到链表*/
display(&
/*显示链表所有数据*/
select1求长度length()\n"
select2取结点get()\n"
select3求值查找locate()\n"
select4删除结点delete()\n"
select0退出\n"
inputyourselect:
select);
while(select!
=0)
{switch(select)
case1:
{
x1=length(&
printf("
输出单链表的长度%d"
x1);
display(&
}break;
case2:
请输入要取得结点:
scanf("
m);
x2=get(&
head,m);
x2);
case3:
{
printf("
请输入要查找的数据:
e);
x3=locate(&
head,e);
x3);
case4:
请输入要删除的结点:
g);
dele(&
head,g);
}
printf("
}
}
voidsetnull(structLNode**p)
*p=null;
intlength(structLNode**p)
intn=0;
structLNode*q=*p;
while(q!
=null)
n++;
q=q->
next;
return(n);
ElemTypeget(structLNode**p,inti)
intj=1;
structLNode*q=*p;
while(j<
i&
&
q!
j++;
if(q!
return(q->
data);
else
{printf("
位置参数不正确!
\n"
return0;
intlocate(structLNode**p,ElemTypex)
while(q!
=null&
q->
data!
=x)
if(q==null)
return(-1);
return(n+1);
voidinsert(structLNode**p,ElemTypex,inti)
structLNode*s,*q;
s=(structLNode*)malloc(sizeof(structLNode));
s->
data=x;
q=*p;
if(i==1)
s->
next=q;
*p=s;
while(j<
i-1&
next!
q=q->
j++;
}
if(j==i-1)
s->
next=q->
q->
next=s;
else
}
voiddele(structLNode**p,inti)
structLNode*q=*p,*t;
t=q;
*p=q->
if(q->
j==i-1)
t=q->
next=t->
if(t!
=null)
free(t);
voiddisplay(structLNode**p)
{
structLNode*q;
单链表显示:
链表为空!
"
elseif(q->
next==null)
%d\n"
q->
while(q->
%d->