当前位置:  编程技术>c/c++/嵌入式

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

    来源: 互联网  发布时间:2014-10-24

    本文导语:  数据结构顺序表操作 代码如下:#include #include #include #define LIST_INIT_SIZE 100#define LISINCREMENT 10#define ElemType int#define Status inttypedef struct Sq{ ElemType *elem; int length; int listsize;}SqList;Status InitList(SqList *L){ L->elem=(ElemType*)malloc(LIST_INIT_SIZE*s...

数据结构顺序表操作

代码如下:

#include
#include
#include
#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(iL->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,int i,ElemType e)
{
 int *p,*q;
 if(iL->length)
        return 0;
    p=&(L->elem[i-1]);
 e=*p;
 q=L->elem+L->length-1;
 for(++p;plength;
 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;ilength;++i)
  scanf("%d",&L->elem[i]);
 printf("输入的顺序表是:n");
    for (i=0;ilength;++i)
    {
  printf("%d ",L->elem[i]);
 }
 printf("n");
    printf("请输入插入的位置以及节点:n");
    scanf("%d%d",&j,&e);
 ListInsert(L,j,e); 
 printf("插入后的顺序表为:n");
 for (i=0;ilength;++i)
    {
  printf("%d ",L->elem[i]);
 }
 printf("n");
 printf("请输入要删除的位置:");
 scanf("%d",&lo);
 ListDelete(L,lo,temp);
 for (i=0;ilength;++i)
    {
  printf("%d ",L->elem[i]);
 }
 printf("n");
 free(L);
 return 0;
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 可不可以这样认为!c语言是一道唯一指向操作系统的语言,精通了它,就了解了操作系统?
  • 操作系统一般是用什么语言编写的
  • 怎样用JAVA语言实现对串口的操作?
  • Linux 下的C语言实现数据库连接池操作。
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • 求在linux下用c语言实现数据库连接池的操作。
  • C语言的JPEG操作库 OpenJPEG
  • 用C语言如何对img文件进行操作
  • 开发操作系统语言的选择?
  • 大家帮我推荐些在linux下用c语言对数据库操作编程的实例或资料吧!谢谢!
  • 请问LINUX下怎么用C语言对文件进行操作(包括新建、读取、删除、修改)
  • C语言编程——操作系统中的文件管理!
  • 请各位推荐几本UNIX下C语言编程学习的书!!(电子书籍也可)最好能详细介绍文件操作的!!!万分感谢!!!
  • c语言文件读写示例(c语言文件操作)
  • 用C语言在linux操作系统下编写MSN的客户端
  • 怎样在c语言的代码里内嵌的操作oracle数据库,各位大虾谢谢了
  • 我想写一个简单的操作系统,能不能推荐一下有关这方面的书?最好是C语言的
  • C语言操作数据库的一个小问题
  • C语言安全编码之数值中的sizeof操作符
  • 急!!在线等!! C语言程序操作mysql怎样在Linux上运行!!立刻揭贴!!
  • 2013年7月和2013年8月编程语言排行榜
  • 如何在GTK2.0下实现国际化(语言选择根据自己设置的语言,不用系统的语言)
  • 2017 年热门编程语言排行榜出炉,你的语言上榜没?
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • 苹果OS X和IOS下最新编程语言swift介绍
  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • C语言中间语言 CIL
  • PHP编程语言介绍及安装测试方法
  • 最近学JSP,苦于HTML语言和JAVA语言太差,请教推荐几本书,thanks.
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3