顺序表的应用举例
利用顺序表的基本运算,实现如果在顺序表A中出现的元素,在顺序表B中也出现,则将A中该元素删掉。
分析:其实这是求两个表的差集,即A-B。依次检查顺序表B中的每一个元素,如果在顺序表A中也出现,则在A中删掉该元素。程序实现代码如下
#include<stdio.h> //包含输入输出 头文件
#define LISTSIZE 100
typedef int DataType; //定义元素类型为整型
//顺序表类型定义
typedef struct {
DataType list[LISTSIZE];
int length;
}SeqList;
#include "SeqList.h" //包含顺序表实现的文件
void DelElem(SeqList *A, SeqList B); //删除A中出现B的元素的函数声明
void main(){
int i, j, flag;
DataType e;
SeqList A, B; //声明顺序表A和B
InitList(&A); //初始化顺序表A
InitList(&B); //初始化顺序表B
for(i = 1; i <= 10; i++){ //将1~10插入到顺序表A中
if(InitList(&A, i, i) == 0){
printf("位置不合法");
return;
}
}
for(i = 1,j = 1; j <= 6; i = i + 2,j++){ //插入顺序表B中的6个数
if(InitList(&B, j, i*2) == 0){
printf("位置不合法");
return;
}
}
print