我是靠谱客的博主 儒雅冥王星,最近开发中收集的这篇文章主要介绍数据结构 线性表 顺序表的交集,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE
100
#define LISTLNCREMENT
10
#define OK
1
#define ERROR
0
#define OVERFLOW
-2
typedef int ElemType;
typedef struct
{
ElemType *elem;
int length;
int listsize;
}SqList;
int InitList_Sq(SqList &L)
{
L.elem = (ElemType *) malloc(LIST_INIT_SIZE * sizeof(ElemType));
if (!L.elem)
{
exit(OVERFLOW);
}
L.length = 0;
L.listsize = LIST_INIT_SIZE;
return OK;
}
void Create_Sq(SqList &L, int n)
{
int i;
for (i=0; i<n; i++)
{
scanf("%d",&L.elem[i]);
}
L.length = n;
}
void Display_Sq(SqList L)
{
int i;
for (i=0; i<L.length ; i++)
{
printf("%d ",L.elem[i]);
}
printf("n");
}
int Find(SqList L, ElemType e)
{
int i = 0;
while (i<L.length)
{
if (L.elem[i] == e)
{
break;
}
++i;
}
if (i == L.length)
{
return 0;
}
return 1;
}
int ListDel_Sq(SqList &L, int i, ElemType &e)
{
ElemType *p,*q;
if (i<1 || i>L.length+1)
{
return ERROR;
}
p = &(L.elem [i-1]);
e = *p;
q = L.elem + L.length - 1;
for (++p;p<=q;++p)
{
*(p-1) = *p;
}
--L.length ;
return OK;
}
int GetData(SqList L,int i)
{
if (i<0 || i>L.length)
{
return ERROR;
}
else
return L.elem[i-1];
}
void SameinList_Sq(SqList &La, SqList Lb)
{
int i = 1,e;
while (i<=La.length)
{
e = GetData(La,i);
if (!Find(Lb,e))
{
ListDel_Sq(La,i,e);
}
else
{
i++;
}
}
}
int main()
{
int n;
SqList La,Lb;
InitList_Sq(La);
InitList_Sq(Lb);
printf("请输入链表La的长度: ");
scanf("%d",&n);
printf("请输入 %d 个数据: ",n);
Create_Sq(La,n);
printf("请输入链表Lb的长度: ");
scanf("%d",&n);
printf("请输入 %d 个数据: ",n);
Create_Sq(Lb,n);
SameinList_Sq(La,Lb);
if (La.length == 0)
{
printf("两个链表没有相同的元素!n");
}
else
{
printf("两个链表相同的元素是: ");
Display_Sq(La);
}
return 0;
}

最后

以上就是儒雅冥王星为你收集整理的数据结构 线性表 顺序表的交集的全部内容,希望文章能够帮你解决数据结构 线性表 顺序表的交集所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(47)

评论列表共有 0 条评论

立即
投稿
返回
顶部