卑微的去爱你 发表于 2013-1-26 12:36:07

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

未完待续:D
/*线性结构数组的实现 */#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);}}   }//判断数组是否为空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=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=pArr->pBase;   }   pArr->pBase=val;   (pArr->cnt)++;   return true;   }   else   {   printf("插入失败\n");   return false;   }}
页: [1]
查看完整版本: 用数组实现线性表的各种操作(C语言)只完成一部分功能,明日继续