189 8069 5689

顺序储存结构-创新互联

#include
#include

创新互联是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站建设、高端网站设计全网营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都网站建设、成都网站设计、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。

typedef struct Arr
{
 int *pBase;
 int lenth;
 int cnt;
}*PARR,ARR;

void init(PARR pArr,int len);
void show_arr(PARR pArr);
bool is_empty(PARR pArr);
bool is_full(PARR pArr);
bool append_arr(PARR pArr,int val);
bool insert_arr(PARR pArr,int pos,int val);
bool delete_arr(PARR pArr,int pos,int *pVal);
void inversion_arr(PARR pArr);//将数组逆序 
void sort_arr(PARR pArr);//将数组内元素排序 

int main()
{
 ARR arr;
 int pos1,val1,pos2,dnum;
 init(&arr,6);
 printf("初始化后");
 show_arr(&arr);
 for(int i=1;i<=5;i++)
 append_arr(&arr,i);
 printf("\n增添后的");
 show_arr(&arr);
 printf("\n请输入插入的位置:");
 scanf("%d",&pos1);
 printf("请输入插入的数据:");
 scanf("%d",&val1);
 if(insert_arr(&arr,pos1,val1))
 {
 printf("插入后的");
 show_arr(&arr);
 }
 else
 {
     printf("插入失败");
 }
 printf("\n请输入删除的位置:");
 scanf("%d",&pos2);
 if(delete_arr(&arr,pos2,&dnum))
 {
     printf("删除的数据为:%d",dnum);
     printf("\n删除后的");
     show_arr(&arr);
 } 
 else
 {
     printf("删除失败");
 }
 inversion_arr(&arr);
 printf("\n逆序后的");
 show_arr(&arr);
 sort_arr(&arr);
 printf("\n排序后的");
 show_arr(&arr);
 return 0;
}
void init(PARR pArr,int len)//pArr只是定义的结构体指针,通过它可以调用结构体中的数据 
{
 pArr->pBase=(int *)malloc(sizeof(int)*len);//分配大小为len的空间为数组空间,此时pBase可当数组用 
 if(pArr->pBase==NULL)
 {
     printf("内存分配失败!!");
     exit(-1);
 }
 else
 {
     pArr->lenth=len; 
     pArr->cnt=0;
 }
 return ;
}
void show_arr(PARR pArr)
{
 if(is_empty(pArr))
 printf("顺序链表为空!!");
 else
 {
     printf("顺序链表为:");
     for(int i=0;icnt;i++)
     printf("%d ",pArr->pBase[i]);//输出pArr指向的结构体中的pBase数组 
 }
 return ;
}
bool is_empty(PARR pArr)
{
 if(pArr->cnt==0)//实际长度为0才为空 
 return true;
 else
 return false;
}
bool is_full(PARR pArr)
{
 if(pArr->cnt==pArr->lenth)//实际长度和大长度相同是该数组已满 
 return true;
 else
 return false;
}
bool append_arr(PARR pArr,int val)
{
 if(is_full(pArr))//若数组已满则无法再在后面容纳数据 
 return false;
 pArr->pBase[pArr->cnt]=val;//注意:第cnt个数据的数组下标为cnt-1 
 pArr->cnt++;//实际长度++ 
 return true;
}
bool insert_arr(PARR pArr,int pos,int val)
{
 if(is_full(pArr))//若数组已满则无法再有插入内存 
 return false;
 if(pos<1||pos>pArr->cnt+1)
 return false;
 for(int i=pArr->cnt-1;i>=pos-1;i--)
 pArr->pBase[i+1]=pArr->pBase[i];
 pArr->pBase[pos-1]=val;
 pArr->cnt++;
 return true;
}
bool delete_arr(PARR pArr,int pos,int *pVal)
{
 if(is_empty(pArr))
 return false;
 if(pos<1||pos>pArr->cnt)
 return false;
 *pVal=pArr->pBase[pos-1]; //
 for(int i=pos;icnt;i++)
 pArr->pBase[i-1]=pArr->pBase[i];//
 pArr->cnt--;//
 return true; 
}
void inversion_arr(PARR pArr)
{
 int i=0;//i为第一个元素下标 
 int j=pArr->cnt-1;//j为最后一个元素下标 
 int t;
 while(i  {
     t=pArr->pBase[i];
     pArr->pBase[i]=pArr->pBase[j];
     pArr->pBase[j]=t;
     i++;
     j--; 
 }
 return ;
}
void sort_arr(PARR pArr) 
{
 int i,j,t;
 for(i=0;icnt-1;i++)
 {
     for(j=i+1;jcnt;j++)
     {
         if(pArr->pBase[i]>pArr->pBase[j])
         {
             t=pArr->pBase[i];
             pArr->pBase[i]=pArr->pBase[j];
             pArr->pBase[j]=t;
         }
     }
 }
 return ;
}
运行结果afddd7d2a982497c85390efd3d65549e.jpg

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文名称:顺序储存结构-创新互联
标题链接:http://cdxtjz.cn/article/dpdpio.html

其他资讯