📄 linklist.txt
字号:
#include"stdafx.h"
#include"stdio.h"
#include"malloc.h"
typedef int datatype;
typedef struct node//链表的结构体定义
{
int data1;
int data2;
int data3;
int data4;
int data5;
struct node *next;
}LNode,*Linklist;
/*************************************************************
*功能: 初始化表
*参数: 无
*返回值: 头指针
*************************************************************/
Linklist create_linkist()
{
Linklist l;
l=(Linklist)malloc(sizeof(LNode));
l->next=NULL;
return l;
}
/*************************************************************
*功能: 添加数据
*参数: 无
*返回值: 无
*说明:当输入0时停止添加数据
*************************************************************/
Linklist add_linkist(Linklist l,int flog1,int flog2,int flog3,int flog4,int flog5)
{
Linklist r,p;
r=l;
// r=l->next;
while(r->next!=NULL)
{
r=r->next ;
}
p=(Linklist)malloc(sizeof(LNode));
p->data1 =flog1;
p->data2 =flog2;
p->data3 =flog2;
p->data4 =flog1;
p->data5 =flog2;
r->next=p;
r=p;
r->next=NULL;
return l;
}
/*************************************************************
*功能: 打印链表
*参数: Linklist l
*返回值: 无
*************************************************************/
void Output(Linklist l)
{
Linklist p;
p=l->next;
printf("\n当前表为:\n");
while(p)
{
printf("%d\td%\td%\td%\t%d\n",p->data1,p->data2 ,p->data3,p->data4,p->data5);
p=p->next;
}
}
/*************************************************************
*功能: 求链表长度
*参数: Linklist l
*返回值: 表长i
*************************************************************/
int Linklist_long(Linklist l)
{
Linklist p;
int i=0;
p=l->next;
while(p)
{
i++;
p=p->next ;
}
return i;
}
/*************************************************************
*功能: 按值查找
*参数: Linklist l,int x
*返回值: 查找失败返回-1,成功查找返回位置i
*************************************************************/
int Linklist_location(Linklist l,int x1)
{
Linklist p;
int i=0;
p=l->next;
while(p)
{
if(p->data1 ==x1)
return i+1;
p=p->next ;
i++;
}
return -1;
}
/*************************************************************
*功能: 在第i个位置插入x
*参数: Linklist l,int x,int i
*返回值: 插入失败返回0,成功返回1
*************************************************************/
int Linklist_insert(Linklist l,int x1,int x2,int x3,int x4,int x5,int i)
{
Linklist p,s;
s=(Linklist)malloc(sizeof(LNode));
p=l;
for(int j=0;j<i-1;j++)
{
if(p==NULL)
return 0;
p=p->next;
}
s->data1 =x1;
s->data2 =x2;
s->data3 =x3;
s->data4 =x4;
s->data5 =x5;
s->next=p->next ;
p->next =s ;
return 1;
}
/*************************************************************
*功能: 删除第i个元素
*参数: Linklist l,int i
*返回值: 插入失败返回0,成功返回1
*************************************************************/
int Linklist_delete(Linklist l,int i)
{
Linklist p;
p=l;
for(int j=0;j<i-1;j++)
{
if(p==NULL)
return 0;
p=p->next;
}
p->next =p->next->next;
return 1;
}
void main()
{
LNode *l;//定义结构体变量l
int x1=0,x2=0,x3=0,x4=0,x5=0;
l=create_linkist();//初始化表
int flog1=0,flog2=0,flog3=0,flog4=0,flog5=0;
printf("输入要添加的接点数:");
scanf("%d%d%d%d%d",&flog1,&flog2,&flog3,&flog4,&flog5);
while(flog1)
{
l=add_linkist(l, flog1,flog2,flog3,flog4,flog5); //插入书元素
printf("输入要添加的接点数:");
scanf("%d%d",&flog1,&flog2,&flog3,&flog4,&flog5);
}
Output(l);//打印表
printf("\n");
int i=Linklist_long(l);//求表长
printf("表长为:%d\n",i);
printf("请输入要查找的数:");//按值查找
scanf("%d",& x1);
int j=Linklist_location(l,x1);
if(j==-1)
printf("查无此数!\n");
else
printf("该数位置为:%d\n",j);
printf("请输入要插入的位置和数:\n");//第i个位置插入x元素
scanf("%d%d%d%d%d%d",& i,&x1,& x2,& x3,& x4,& x5 );
int k=Linklist_insert(l,x1,x2,x3,x4,x5,i);
if(k==1)
printf("插入成功\n");
else
printf("插入失败\n");
Output(l);
printf("\n");
printf("请输入要删除数的位置:\n");//删除元素
scanf("%d",& i);
int z=Linklist_delete(l,i);
if(z==1)
printf("删除成功\n");
else
printf("删除失败\n!");
Output(l);
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -