
用C语言实现: (1)用头插法(或尾插法)建立带头结点的单链表;
1个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
typedef struct lista{
struct lista *next;
int data;
}list;
void insert(list *h);
void del(list *h);
int main()
{
int flag;
list *head=(list *)malloc(sizeof(list));
head->next=NULL;
while(1)
{
printf("/***********************************************************/\n");
printf("请选择链表操作:\n 1:插入\n 2:删除\n输入数字进行选择:");
scanf("%d",&flag);
if(flag==1)
insert(head);
else if(flag==2)
del(head);
else
printf("输入有误,请重新选择!\n");
}
}
void insert(list *h)
{
int num,dat;
list *lh;
printf("请选择插入个数:\n");
scanf("%d",&num);
printf("要插入的数据:\n");
while(num--)
{
scanf("%d",&dat);
list *p=(list *)malloc(sizeof(list));
p->next=h->next;
h->next=p;
p->data=dat;
}
printf("插入后链表中的值:\n");
lh=h->next;
while(lh)
{
printf("%d ",lh->data);
lh=lh->next;
}
printf("\n\n\n");
}
void del(list *h)
{
int dat,flag;
list *lh;
printf("请输入要删除的值:\n");
scanf("%d",&dat);
lh=h;
while(lh->next)
{
if(lh->next->data==dat)
{
flag=1;
lh->next=lh->next->next;
break;
}
lh=lh->next;
}
if(flag)
{
lh=h->next;
printf("删除后链表中的值:\n");
while(lh)
{
printf("%d ",lh->data);
lh=lh->next;
}
printf("\n\n\n");
}
else
printf("链表中无匹配值\n\n\n");
}

2024-04-12 广告
**ODU重载连接器**ODU重载连接器是一种高性能、高密度的连接解决方案,广泛应用于各种工业自动化和通信设备中。它采用先进的设计理念和制造技术,具有优异的电气性能和机械强度,能够满足复杂环境下对数据传输和信号稳定的高要求。同时,ODU重载...
点击进入详情页
本回答由上海莘默提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询