线性表的16种算法Word文档格式.docx

上传人:b****2 文档编号:15122949 上传时间:2022-10-27 格式:DOCX 页数:14 大小:19.75KB
下载 相关 举报
线性表的16种算法Word文档格式.docx_第1页
第1页 / 共14页
线性表的16种算法Word文档格式.docx_第2页
第2页 / 共14页
线性表的16种算法Word文档格式.docx_第3页
第3页 / 共14页
线性表的16种算法Word文档格式.docx_第4页
第4页 / 共14页
线性表的16种算法Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

线性表的16种算法Word文档格式.docx

《线性表的16种算法Word文档格式.docx》由会员分享,可在线阅读,更多相关《线性表的16种算法Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

线性表的16种算法Word文档格式.docx

  if(!

p){  /*分配失败则退出运行*/

    printf("

存储空间分配失败!

"

);

    exit

(1);

  }

  L->

list=p;

  /*使list指向新线性表空间*/

maxSize=2*L->

maxSize;

  /*把线性表空间大小修改为新的长度*/

}

/*1.初始化线性表L,即进行动态存储空间分配并置L为一个空表*/

voidinitList(structList*L,intms)

{

  /*检查ms是否有效,若无效的则退出运行*/

  if(ms<

=0){

MaxSize非法!

  /*执行此函数中止程序运行,此函数在stdlib.h中有定义*/

maxSize=ms;

  /*设置线性表空间大小为ms*/

size=0;

list=malloc(ms*sizeof(elemType));

L->

list){

空间分配失败!

  return;

/*2.清除线性表L中的所有元素,释放存储空间,使之成为一个空表*/

voidclearList(structList*L)

  if(L->

list!

=NULL){

    free(L->

list);

    L->

list=0;

size=L->

maxSize=0;

/*3.返回线性表L当前的长度,若L为空则返回0*/

intsizeList(structList*L)

  returnL->

size;

/*4.判断线性表L是否为空,若为空则返回1,否则返回0*/

intemptyList(structList*L)

size==0){

    return1;

  else{

    return0;

/*5.返回线性表L中第pos个元素的值,若pos超出范围,则停止程序运行*/

elemTypegetElem(structList*L,intpos)

  if(pos<

1||pos>

size){  /*若pos越界则退出运行*/

元素序号越界!

list[pos-1];

  /*返回线性表中序号为pos值的元素值*/

/*6.顺序扫描(即遍历)输出线性表L中的每个元素*/

voidtraverseList(structList*L)

  inti;

  for(i=0;

i<

i++){

%d"

L->

list[i]);

  printf("

/*7.从线性表L中查找值与x相等的元素,若查找成功则返回其位置,否则返回-1*/

intfindList(structList*L,elemTypex)

    if(L->

list[i]==x){

      returni;

    }

  return-1;

/*8.把线性表L中第pos个元素的值修改为x的值,若修改成功返回1,否则返回0*/

intupdatePosList(structList*L,intpos,elemTypex)

size){  /*若pos越界则修改失败*/

list[pos-1]=x;

  return1;

/*9.向线性表L的表头插入元素x*/

voidinserFirstList(structList*L,elemTypex)

size==L->

maxSize){

    againMalloc(L);

  for(i=L->

size-1;

i>

=0;

i--){

list[i+1]=L->

list[i];

list[0]=x;

size++;

/*10.向线性表L的表尾插入元素x*/

voidinsertLastList(structList*L,elemTypex)

maxSize){  /*重新分配更大的存储空间*/

list[L->

size]=x;

  /*把x插入到表尾*/

  /*线性表的长度增加1*/

/*11.向线性表L中第pos个元素位置插入元素x,若插入成功返回1,否则返回0*/

intinsertPosList(structList*L,intpos,elemTypex)

size+1){  /*若pos越界则插入失败*/

=pos-1;

/*12.向有序线性表L中插入元素x, 使得插入后仍然有序*/

voidinsertOrderList(structList*L,elemTypex)

  inti,j;

  /*若数组空间用完则重新分配更大的存储空间*/

  /*顺序查找出x的插入位置*/

    if(x<

list[i]){

      break;

  /*从表尾到下标i元素依次后移一个位置,把i的位置空出来*/

  for(j=L->

j>

=i;

j--)

list[j+1]=L->

list[j];

  /*把x值赋给下标为i的元素*/  

list[i]=x;

  /*线性表长度增加1*/

/*13.从线性表L中删除表头元素并返回它,若删除失败则停止程序运行*/

elemTypedeleteFirstList(structList*L)

  elemTypetemp;

线性表为空,不能进行删除操作!

  temp=L->

list[0];

  for(i=1;

i++)

list[i-1]=L->

size--;

  returntemp;

/*14.从线性表L中删除表尾元素并返回它,若删除失败则停止程序运行*/

elemTypedeleteLastList(structList*L)

size];

    /*返回原来表尾元素的值*/

/*15.从线性表L中删除第pos个元素并返回它,若删除失败则停止程序运行*/

elemTypedeletePosList(structList*L,intpos)

size){    /*pos越界则删除失败*/

pos值越界,不能进行删除操作!

  for(i=pos;

/*16.从线性表L中删除值为x的第一个元素,若成功返回1,失败返回0*/

intdeleteValueList(structList*L,elemTypex)

  /*从线性表中顺序查找出值为x的第一个元素*/

list[i]==x){  

  /*若查找失败,表明不存在值为x的元素,返回0*/

  if(i==L->

size){

  /*删除值为x的元素L->

list[i]*/

  for(j=i+1;

j<

j++){

list[j-1]=L->

voidmain()

  inta[10]={2,4,6,8,10,12,14,16,18,20};

  structListL;

  initList(&

L,5);

10;

    insertLastList(&

L,a[i]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1