数据结构 线性表 顺序表合并
2013-12-02 18:53
323 查看
#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 ListInsert_Sq(SqList &L, int i, ElemType e) { ElemType *newbase,*p,*q; if (i<1 || i>L.length+1) { return ERROR; } if (L.length >= L.listsize) { newbase = (ElemType *)realloc(L.elem ,(L.listsize + LISTLNCREMENT) * sizeof(LISTLNCREMENT)); if (!newbase) { exit(OVERFLOW); } L.elem = newbase; L.listsize += LISTLNCREMENT; } q = &(L.elem [i-1]); for (p=&(L.elem[L.length-1]);p>=q;--p) { *(p+1) = *p; } *q = e; ++L.length ; return OK; } int equal(ElemType i, ElemType j) { return (i==j); } int LocateElem_Sq(SqList L, ElemType e, int (*compare)(ElemType, ElemType)) { ElemType *p; int i = 1; p = L.elem; while (i <= L.length && !(*compare)(*p++,e)) { ++i; } if (i<=L.length) { return i; } else { return 0; } } void GetElem(SqList L,int i, ElemType &e) { e = L.elem[i-1]; } void Listunion(SqList &La, SqList Lb) { int i,e; int la_len = La.length ; int lb_len = Lb.length ; for (i=1; i<=lb_len; i++) { GetElem(Lb,i,e); if (!LocateElem_Sq(La,e,equal)) { ListInsert_Sq(La,++la_len, e); } } } 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); printf("合并后的两个链表是:"); Listunion(La,Lb); Display_Sq(La); return 0; }
相关文章推荐
- java实现数据结构-线性表-顺序表,实现插入,查找,删除,合并功能
- 数据结构(一)顺序表和线性表重点概述
- 数据结构--顺序表合并操作
- 数据结构 线性表 顺序表
- 数据结构-线性表-顺序表
- 【数据结构】-线性表-顺序表-1324: 算法2-2:有序线性表的有序合并
- 数据结构--合并顺序表
- 老郭带你学数据结构(C语言系列)2-线性表之动态顺序表
- 数据结构线性表的两种存储形式顺序表和单链表的比较
- 数据结构线性表的综合实验——顺序表
- 老郭带你学数据结构(C语言系列)1-线性表之静态顺序表
- 数据结构-线性表-顺序表
- 【数据结构学习2】线性表,顺序表定义中详细表述。
- 数据结构-线性表-顺序表
- 【C语言版数据结构】线性表的链式表示,并且实现合并两个非递减有序排列到新的线性表
- 《数据结构》严蔚敏版(java解)——第二章 线性表04 顺序单链表合并
- 数据结构 第二章 线性表(3)顺序线性表合并
- 大一新手学习线性表-顺序表的合并(C语言)
- 《数据结构(严蔚敏版)》学习笔记(二)——合并线性表
- 数据结构例子-将两个线性表合并