c/c++语言开发共享顺序算法

#include "stdio.h" #include "stdlib.h" #define MaxSize 100 typedef struct sqlist{ int data[MaxSize]; int length; }SqList; void CreateList(SqList *p,in …

#include "stdio.h" #include "stdlib.h" #define maxsize 100  typedef struct sqlist{     int data[maxsize];     int length;     }sqlist;  void createlist(sqlist *p,int data[],int n); int  listinsert(sqlist *p,int i ,int e);  void showlist(sqlist *p,int n);  void main(){     sqlist*l; int data[6]={34,178,2,88,76,10},n,j; //顺序表初始化  l=(sqlist *)malloc(sizeof(sqlist)); if(!l)     printf("内存分配失败"); else     l->length=0; createlist(l,data,6); showlist(l,6);   // 插入元素  printf("请输入插入值的位置和数值(逗号分隔):"); scanf("%d,%d",&j,&n); n=listinsert(l,j,n); if(n==-1)    printf("插入位置有问题!n"); else    showlist(l,n);  //删除元素  printf("请输入删除的位置:"); scanf("%d",&j); n=listdelete(l,j); if(n==-1)    printf("删除失败!n"); else    printf("删除的元素为:%dn",n); showlist(l,l->length);  //释放空间  free(l); }  //创建  void createlist(sqlist *p,int data[],int n){     int i;     for(i=0;i<n;i++)     p->data[i]=data[i];     p->length=n; }    //插入  int  listinsert(sqlist *p,int i ,int e){ int j; if(i<1|| i>p->length+1) return -1; i--;//形象i是逻辑位序  for(j=p->length ; j>i ; j--) p->data[j]=p->data[j-1]; p->data[i]=e; p->length++; return p->length; }    //显示  void showlist(sqlist *p,int n){     int j;     for(j=0;j<n;j++)     printf("%d",p->data[j]);     printf("t顺序表长度为:%dn",p->length); }  //删除 int listdelete(sqlist *l,int i){     int k;int x;     if(l->length==0)     {        printf("此表为空表,无法删除!");        return -1;         }     else if(i<i || i>l->length)      {        printf("删除的位置有误!");        return -1;         }     else{         x=l->data[i-1];         for(k=i;k<l->length;k++)         l->data[k-1]=l->data[k];         l->length--;         return x;     } } 

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/599932.html

(0)
上一篇 2021年5月9日
下一篇 2021年5月9日

精彩推荐