当前位置:编程学习 > C/C++ >>

用数组实现线性表的各种操作(C语言)只完成一部分功能

 

未完待续:D

<pre name="code" class="c">

/*

线性结构数组的实现

*/

#include <stdio.h>

#include <malloc.h>  //包含了malloc函数

#include <stdlib.h>  //包含了exit函数

 

//首先定义描述数组信息的结构体类型

struct Arr

{

  int * pBase;//存放数组首地址的指针变量

  int len;//数组长度

  int cnt;//数组中元素的个数

};

 

//定义数组的基本操作的函数声明

void init_arr(struct Arr * pArr,int length);//数组初始化

bool append_arr(struct Arr * pArr,int val);//追加元素

bool insert_arr(struct Arr * pArr,int index ,int val);//插入元素

bool delete_arr();//删除元素

int get(); //得到元素

bool is_empty(struct Arr * pArr);//判断是否为空

bool is_full();//判断是否已满

void sort_arr();//排序

void show_arr(struct Arr * pArr);//遍历数组

void inversion_arr();//数组倒置

 

int main(void)

{

struct Arr arr;

init_arr(&arr,6);//初始化函数测试

//show_arr(&arr);

append_arr(&arr,3);

append_arr(&arr,2);

append_arr(&arr,9);

insert_arr(&arr,2,7);

show_arr(&arr);

return 0;

}

 

//初始化数组的函数实现  pArr是结构体变量arr的指针

void init_arr(struct Arr * pArr,int length)

{

   pArr->pBase=(int *)malloc(sizeof(int)*length);//malloc()函数头文件声明

   if(NULL==pArr->pBase)

   {

      printf("动态内存分配失败!\n");

  exit(-1);//要在头文件声明

   }

   else

   {

     pArr->len=length;

pArr->cnt=0;

   }

 

}

//遍历数组函数实现

void show_arr(struct Arr * pArr)

{

if(is_empty(pArr))

{

   printf("数组为空\n");

}

else

{

  for(int i=0;i<pArr->cnt;i++)

  {

    printf("%d",pArr->pBase[i]);

  }

}

  

}

//判断数组是否为空

bool is_empty(struct Arr * pArr)

{

   if(pArr->cnt==0)

  

   return true;

   else

  

   return false;

  

}

//数组追加元素

bool append_arr(struct Arr * pArr,int val)

{

  if(pArr->cnt < pArr->len)

  {

    pArr->pBase[pArr->cnt]=val;

(pArr->cnt)++;

return true;

  }

  else

printf("数组已满\n");

    return false;

}

//插入元素

bool insert_arr(struct Arr * pArr,int index ,int val)

{

   if(pArr->cnt<pArr->len&&index<=pArr->cnt)

   {

   for(int i=pArr->cnt-1;i>=index-1;i--)

   {

     pArr->pBase[i+1]=pArr->pBase[i];

 

 

   }

   pArr->pBase[index-1]=val;

   (pArr->cnt)++;

   return true;

   }

   else

   {

   printf("插入失败\n");

   return false;

   }

 

 

}</pre>

补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,