链表的一些操作

#include<stdio.h> #define null 0 typedef  int Datatype;//定义数据函数 typedef struct node {  Datatype data;  struct node *next; }linknode; linknode *creatlink();//定义单连表的数据函数 linknode *h[3]; linknode *paixu(arr,m)//定义排序算法 int arr[]; int m; {  int i,j,k=-1,n;  linknode *p;  for(i=1;idata=arr[i];   r->next=s;   r=s;  }  r->next=null;  return head; } int compare(int a,int b,int c)//定义建立链表函数 {  int m,t;  if(a==b&&b==c)   return 4;  if(ac)   t=3;j   return t; } int findsame(linknode *h1,linknode *h2,linknode *h3) //定义在三个单链表中找到第一个相同的函数 {  linknode *p=h1->next,*q=h2->next,*r=h3->next;  int find=0,n;  while(p!=null&&q!==null&&r!=null&&find==0)//循环条件  {   n=compare(p->data,q->data,r->data);   switch(n)   {   case 4:find=1;break;   case 3:r=r->next;break;   case 2:q=q->next;break;   case 1:p=p->next;break;   }  }  if(find)   return p->data;  else   return -1; } void  main() {  int d,n,m,i;  int arr[3][80];  printf("请输入数组元素的个数:");  scanf("%d",&m);  for(n=0;n<3;n++)  {   printf("请输入数组元素的值:/n");   for(i=1;i<=m;i++)    scanf("%d",&arr[n][i]);   h[n]=paixu(arr[n],m);//注意arr[n]是数组名  }  if((d=findsame(h[0],h[1],h[2]))!=-1)   printf("第一个相同的数是:%d/n",d);  else   printf("对不起,没有找到相同的数! /n"); }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值