加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

c语言实现顺序表的基本操作

发布时间:2020-12-15 00:52:38 所属栏目:C语言 来源:网络整理
导读:数据结构顺序表操作 复制代码 代码如下: #include stdio.h #include stdlib.h #include malloc.h #define LIST_INIT_SIZE 100 #define LISINCREMENT 10 #define ElemType int #define Status int typedef struct Sq{ ElemType *elem; int length; int listsi

数据结构顺序表操作

复制代码 代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define LIST_INIT_SIZE 100
#define LISINCREMENT 10
#define ElemType int
#define Status int
typedef struct Sq{
 ElemType *elem;
 int length;
 int listsize;
}SqList;
Status InitList(SqList *L)
{
 L->elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));
 if(!L->elem)
  return 0;
 L->length=0;
 L->listsize=LIST_INIT_SIZE;
 return 1;
}
Status ListInsert(SqList *L,int i,ElemType e)
{
 int *q,*p;
 if(i<1||i>L->length)
  return 0;
 if(L->length>L->listsize)
 {
        ElemType *newbase=(ElemType*)realloc(L->elem,(LIST_INIT_SIZE+LISINCREMENT)*sizeof(ElemType));
     if(!newbase)
      return 0;
     L->elem=newbase;
     L->listsize+=(LISINCREMENT);
 }

 q=&(L->elem[i-1]);
 for(p=&(L->elem[L->length-1]);p>=q;--p)
  *(p+1)=*p;
    *q=e;
 ++L->length;
 return 1;
}
Status ListDelete(SqList *L,ElemType e)
{
 int *p,*q;
 if(i<1||i>L->length)
        return 0;
    p=&(L->elem[i-1]);
 e=*p;
 q=L->elem+L->length-1;
 for(++p;p<=q;++p)
  *(p-1)=*p;
 --L->length;
 return 1;
}
int main(void)
{
 int i,j,e,lo,temp;
 SqList *L=(SqList*)malloc(sizeof(SqList));
    InitList(L);
 printf("请输顺序表的长度:n");
    scanf("%d",&L->length);
 printf("请输入顺序表的各个元素:n");
 for(i=0;i<L->length;++i)
  scanf("%d",&L->elem[i]);
 printf("输入的顺序表是:n");
    for (i=0;i<L->length;++i)
    {
  printf("%d ",L->elem[i]);
 }
 printf("n");
    printf("请输入插入的位置以及节点:n");
    scanf("%d%d",&j,&e);
 ListInsert(L,e); 
 printf("插入后的顺序表为:n");
 for (i=0;i<L->length;++i)
    {
  printf("%d ",L->elem[i]);
 }
 printf("n");
 printf("请输入要删除的位置:");
 scanf("%d",&lo);
 ListDelete(L,temp);
 for (i=0;i<L->length;++i)
    {
  printf("%d ",L->elem[i]);
 }
 printf("n");
 free(L);
 return 0;
}

您可能感兴趣的文章:

  • C语言线性表的顺序表示与实现实例详解
  • C语言实现顺序表基本操作汇总
  • 利用C语言实现顺序表的实例操作
  • C语言顺序表实现代码排错
  • 用C语言举例讲解数据结构中的算法复杂度结与顺序表
  • C语言顺序表的实现代码
  • C语言实现动态顺序表的实现代码
  • C语言实现静态顺序表的实例详解
  • C语言使用顺序表实现电话本功能
  • C语言实现的顺序表功能完整实例

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读