线性表的顺序结构表示(一)

用线性表将所有在lb 中但不在la中的元素插入la中

LOC(a1)是线性表的第一个数据元素a1的存储位置,乘坐线性表的起始位置。

线性表中元素的个数n定义为线性表的长度,n=0时为空表

在非空表中的每一个元素都有一个确定的位置,如a1是第一个数据元素,an是最后一个数据元素,当i=1,2,3…n-1 ,ai有且仅有一个直接后继,当i=2,3…n时,ai有且只有一个直接前驱;
线性表的顺序存储结构是一种随机存取的存储结构

#include<stdio.h>
#include<stdlib.h>

#define  list_init_len 100
#define listcreat 10
#define OK 1
#define OVERFLOW 0

typedef struct {
	int *elem;//存储空间基地址
	int len;
	int listsize; 
}List;
int initlist(List &L)//构造一个空的线性表
{
	L.elem = (int *)malloc(list_init_len * sizeof(int));
	if (!L.elem)
	exit(OVERFLOW);
	L.len =0;
	L.listsize=list_init_len;
	return OK;
 } 
 
 int insertlist(List &L,int Len,int e) {
   // L.elem = (int *)malloc(list_init_len * sizeof(int));
   	if(Len>L.len){
   		L.len++;
	   }
	L.len=e;
 }
 int getelem(List &L,int n,int e){
 	if(n>L.len )exit(1);
 	return e=L.elem[n];
 }
int LocateElem(List &L,int e)
{
	for(int i=1;i<=L.len ;i++){
		if(L.elem[i] == e){
			return 1;
		}
		return 0;
	}
}
 void Union(List &la,List &lb){
 	//将所有在lb 中但不在la中的元素插入la中
 	int e;
	for(int i=1;i<lb.len ;i++){
		getelem(lb,i,e);} 
		if(!LocateElem(la,e)){//la中没有与e相等的元素 
			insertlist(la,++la.len,e) ;
	}
 }
 void give(List &L){
 //给表随机赋予10个数据元素
 	for(int i=1;i<=10;i++)
 	 L.elem[i]=rand();
 	
 }
 void printlist(List &L){//输出顺序表 
 	for(int i=1;i<=10 ;i++){
 		printf("%d\t",L.elem[i]);
	 } 
	 printf("\n");
 }
 int main()
 {
 	List La,Lb;
 	initlist(La);
 	initlist(Lb);
 	give(La);
 	give(Lb);
 	printlist(La);
 	printlist(Lb);
 	Union(La,Lb);
 	printlist(La);
 	return 0;
 }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值