请高手帮忙做数据结构题..叩谢!

实验一单链表的实现【实验目的与要求】目的:掌握单链表建立、清空、删除、插入遍历等操作。要求:建立单链表、删除某指定位置节点、在某个指定位置插入节点【实验步骤】1、建立工程... 实验一 单链表的实现
【实验目的与要求】
目的:掌握单链表建立、清空、删除、插入遍历等操作。
要求:建立单链表、删除某指定位置节点、在某个指定位置插入节点
【实验步骤】
1、建立工程:学号姓名实验1
2、将utility.h,node.h,simple_lk_list.h复制到上述文件夹,并将utility.h, simple_lk_list.h加入工程中
3、建立源程序文件,实现生成线性表、显示线性表、清空线性表、插入元素、删除元素等操作
4、可以不利用上述头文件,自行编程实现单链表的建立,清空,删除,插入遍历等操作。
展开
 我来答
huangzihang10
2011-11-30 · TA获得超过187个赞
知道小有建树答主
回答量:280
采纳率:0%
帮助的人:104万
展开全部
#include <stdio.h>
#include <stdlib.h>
typedef struct lnode
{ int data;
struct lnode *next;
}lnode,*linklist;
linklist listinsert_l(linklist l,int i,int e)
{
linklist p,s;
int j;
p=l;
j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
exit(0);
s=(linklist)malloc(sizeof(lnode));
s->data=e;
s->next=p->next;
p->next=s;
l=l->next;
while(l)
{
printf("%d ",l->data);
l=l->next;
}
return 0;
}
int listdelete_l(linklist l,int i,int b)
{
linklist p,q;
int j;
p=l;
j=0;
while(p->next&&j<i-1)
{
p=p->next;
++j;
}
if(!(p->next)||j>i-1)
exit(0);
q=p->next;
p->next=q->next;
b=q->data;
free(q);
l=l->next;
while(l)
{
printf("%d ",l->data);
l=l->next;
}
return b;
}
int main()
{
linklist l,p;
int n,i,e,j,a,b;
scanf("%d",&n);
l=(linklist)malloc(sizeof(lnode));
l->next=NULL;
for(i=n;i>0;--i)
{
scanf("%d",&a);
p=(linklist)malloc(sizeof(lnode));
p->data=a;
p->next=l->next;
l->next=p;
}
scanf("%d%d",&j,&e);
listinsert_l(l,j,e);
printf("\n输入要删除的位置:");
scanf("%d",&i);
b=listdelete_l(l,i,b);
printf("\n%d",b);
return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式