线性表的顺序存储结构

#include

#include

#define LIST_INIT_SIZE 100

#define LISTINCREMENT 10

#define OK 1

typedef int ElemType;

typedef struct{

ElemType *elem;

int length;

int listsize;

}Sqlist;

ElemType InitList_Sq(Sqlist *L)

{

L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L->elem) exit(1);

L->length=0;

L->listsize=LIST_INIT_SIZE;

return OK;

}

ElemType CreateList(Sqlist *L)

{

int s;

ElemType *newbase;

printf("please input data end with 0: "); scanf("%d",&s); while(s!=0) { if (L->length>=L->listsize) { newbase=(ElemType

*)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType)); if(!newbase) exit(1);

}

} } L->elem[L->length]=s; L->length++; scanf("%d",&s); return OK; L->elem=newbase; L->listsize+=LISTINCREMENT;

void Mergelist_sqlist(Sqlist *La, Sqlist *Lb,Sqlist *Lc) {

ElemType *pa,*pb,*pc,*pa_last,*pb_last; pa_last=La->elem+La->length-1; pb_last=Lb->elem+Lb->length-1; pa=pa_last;pb=pb_last; Lc->listsize=Lc->length=La->length+Lb->length; pc=Lc->elem=(ElemType*)malloc(Lc->listsize*sizeof(ElemType)); if(!Lc->elem)exit(1); while(pa>=La->elem&&pb>=Lb->elem) { } if(*pa

while(pa>=La->elem)*pc++=*pa--;

while(pb>=Lb->elem)*pc++=*pb--;

}

void print(Sqlist L)

{

int i;

for(i=0;i

printf("%4d",L.elem[i]);

} printf("\n");

void main()

{

Sqlist La;

Sqlist Lb;

Sqlist Lc;

// clrscr();

InitList_Sq(&La);

InitList_Sq(&Lb);

InitList_Sq(&Lc);

CreateList(&La);

CreateList(&Lb);

printf("the datas of list A:\n");

print(La);

printf("the datas of list B:\n");

print(Lb);

printf("the result for mergelisted:\n");

Mergelist_sqlist(&La,&Lb,&Lc); print(Lc);

getch();

}

#include

#include

#define LIST_INIT_SIZE 100

#define LISTINCREMENT 10

#define OK 1

typedef int ElemType;

typedef struct{

ElemType *elem;

int length;

int listsize;

}Sqlist;

ElemType InitList_Sq(Sqlist *L)

{

L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L->elem) exit(1);

L->length=0;

L->listsize=LIST_INIT_SIZE;

return OK;

}

ElemType CreateList(Sqlist *L)

{

int s;

ElemType *newbase;

printf("please input data end with 0: "); scanf("%d",&s); while(s!=0) { if (L->length>=L->listsize) { newbase=(ElemType

*)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(ElemType)); if(!newbase) exit(1);

}

} } L->elem[L->length]=s; L->length++; scanf("%d",&s); return OK; L->elem=newbase; L->listsize+=LISTINCREMENT;

void Mergelist_sqlist(Sqlist *La, Sqlist *Lb,Sqlist *Lc) {

ElemType *pa,*pb,*pc,*pa_last,*pb_last; pa_last=La->elem+La->length-1; pb_last=Lb->elem+Lb->length-1; pa=pa_last;pb=pb_last; Lc->listsize=Lc->length=La->length+Lb->length; pc=Lc->elem=(ElemType*)malloc(Lc->listsize*sizeof(ElemType)); if(!Lc->elem)exit(1); while(pa>=La->elem&&pb>=Lb->elem) { } if(*pa

while(pa>=La->elem)*pc++=*pa--;

while(pb>=Lb->elem)*pc++=*pb--;

}

void print(Sqlist L)

{

int i;

for(i=0;i

printf("%4d",L.elem[i]);

} printf("\n");

void main()

{

Sqlist La;

Sqlist Lb;

Sqlist Lc;

// clrscr();

InitList_Sq(&La);

InitList_Sq(&Lb);

InitList_Sq(&Lc);

CreateList(&La);

CreateList(&Lb);

printf("the datas of list A:\n");

print(La);

printf("the datas of list B:\n");

print(Lb);

printf("the result for mergelisted:\n");

Mergelist_sqlist(&La,&Lb,&Lc); print(Lc);

getch();

}


相关文章

  • 考点1:数据结构与算法
  • A )所谓算法就是计算方法 B )程序可以作为算法的一种描述方法 C )算法设计只需考虑得到计算结果 D )算法设计可以忽略算法的运算时间 题目解析:算法是一组有穷指令集,是解题方案的准确而完整的描述.通俗地说,算法就是计算机解题的过程, ...查看


  • 数据结构中的名词解释
  • 本章主要介绍了如下一些基本概念:  数据结构:数据结构是研究数据元素之间抽象化的相互关系和这种关系在计算机中 的存储表示(即所谓数据的逻辑结构和物理结构),并对这种结构定义相适应的运算,设计出相应的算法,而且确保经过这些运算后所得到的新结 ...查看


  • 数据结构第2章-答案
  • 一.填空题 01.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用顺序存储结构. 02.线性表L=(a1,a2, -,an )用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均 ...查看


  • 2014黑龙江省数据结构考试题库
  • 1.广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D ). A) (G) B) (D) C) C D) D 2.若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接 ...查看


  • 2014西藏自治区数据结构考试题库
  • 1.已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D ). A) Head(Head(Tail(Tail(L)))) B) Tail(Head(Head(Tail(L)))) C) Head(Ta ...查看


  • 计算机二级基础知识选择题
  • 选择题 (1)下面叙述正确的是(C) A. 算法的执行效率与数据的存储结构无关B. 算法的空间复杂度是指算法程序中指令(或语句)的条数C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止D. 以上三种描述都不对 (2)以下数据结构中不属 ...查看


  • 线性表顺序存储结构上的基本运算
  • 实验项目名称: 线性表的顺序存储结构上的基本运算 (所属课程: 数据结构--用C 语言描述 ) 院 系:计算机科学与信息工程学院 专业班级:网络工程 姓 名:000000 学 号:0000000000 实验日期:2016.10.20 实验地 ...查看


  • 计算机二级考试复习资料
  • 站长提醒广大考生:下 面的138道题目,在二级考试中命中率极高. 一.选择题 (1) 下面叙述正确的是(C) A. 算法的执行效率与数据的存储结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须 ...查看


  • 二级access公共基础历年真题解析
  • 全国计算机等级考试二级公共基础历年真题解析  2010年9月 选择题:(1)下列叙述中正确的是( ) A)线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 B)线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C)线性 ...查看


  • 数据结构C语言版线性表的动态分配顺序存储结构表示和实现文库
  • 数据结构C语言版 线性表的动态分配顺序存储结构表示和实现文库.txt爱空空情空空,自己流浪在街中:人空空钱空空,单身苦命在打工:事空空业空空,想来想去就发疯:碗空空盆空空,生活所迫不轻松.总之,四大皆空!/* 数据结构C语言版 线性表的动态 ...查看


热门内容