`

用c实现顺序表的增加与删除

阅读更多
#include "stdio.h"
#include "conio.h"
#define MaxSize 10
typedef int ElemType;

typedef struct{
int * elem;
int length;
int listsize;
}Sqlist;

void initSqlist(Sqlist *L){
 L->elem=(int*)malloc(MaxSize*sizeof(ElemType));
 if(!L->elem)exit(0);
 L->length=0;
 L->listsize=MaxSize;
}
void InsertElem(Sqlist *L,int i,ElemType item){
 ElemType *base,*insertPtr,*p;
 if(i<1||i>L->length+1)exit(0);
 if(L->length>=L->listsize){
  base =(ElemType*)realloc(L->elem,(L->listsize+10)*sizeof(ElemType));
  L->elem=base;
  L->listsize=L->listsize+100;
  }
  insertPtr=&(L->elem[i-1]);
  for(p=&(L->elem[L->length-1]);p>=insertPtr;p--)
  *(p+1)=*p;
  *insertPtr=item;
  L->length++;


}
void DelElem(Sqlist *L,int i){
  ElemType *delItem,*q;
   if(i<1||i>L->length)exit(0);
   delItem=&(L->elem[i-1]);
   q=L->elem+L->length-1;
   for(++delItem;delItem<=q;++delItem) *(delItem-1)=*delItem;
   L->length--;
}


main(){
Sqlist l;
int i;
initSqlist(&l);
system("cls");
printf("init....");
printf("%d\n",l.listsize);
for(i=0;i<=8;i++) {

printf("%d\n",i+1);
InsertElem(&l,i+1,i+1);
}

printf("\nelem is:\n");

for(i=0;i<l.length;i++)
printf("%d\n",l.elem[i]);
DelElem(&l,5);
for(i=0;i<l.length;i++)
printf("%d\n",l.elem[i]);
 getche();



}

分享到:
评论

相关推荐

    数据结构顺序表(附加功能)

    利用C++实现顺序表,并增加按值查询和按值删除,附加:支持多值删除和多值插入。

    学生信息管理系统(C++实现,链表实现,还有完整的实验报告)

    实验目的: ...2. add_delete.cpp//增加和删除学生信息功能 3. stusys_h.h //头文件,包含预处理,常量定义,类型定义,函数声明 内容非常丰富,一定对你有帮助,有需要的小伙伴们抓紧时间下载吧!

    算法与数据结构复习题型

    数据结构复习试题——线性表 一、 选择题 1.下列哪一条是顺序存储结构的优点 【 】 A. 插入运算方便 B. 可方便地用于各种逻辑结构...8、在顺序表中插入或删除一个元素,需要平均移动 元素,具体移动的元素个数与 有关。

    基于C语言所设计的教务管理系统.docx

    基本功能用函数实现; 至少完成实验内容中4个功能,学生可以自己增加或减少题目功能; 程序能正确执行、输入与输出有必要的提示信息、界面美观; 用菜单调用加分。用链表加分。 最后结果输出。要求:输出格式要...

    计算机二级C语言考试题预测

    (61) 数据结构中,与所使用的计算机无关的是数据的(C) A. 存储结构 B. 物理结构 C. 逻辑结构 D. 物理和存储结构 (62) 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是...

    Excel新增工具集

    删除与标注重复行、特殊数据行操作代码用字典法编写,比Excel公式与高级筛选提速几十倍。 1、重名查找与姓名美化:本软件不仅能查找同字重名,还能查找同音重名。执行此命令能够为某一列的重复数据(包含汉字同音)...

    数据结构算法与应用-C__语言描述

    数据结构算法与应用-C__语言描述 目 录 译者序 前言 第一部分 预备知识 第1章 C++程序设计 1 1.1 引言 1 1.2 函数与参数 2 1.2.1 传值参数 2 1.2.2 模板函数 3 1.2.3 引用参数 3 1.2.4 常量引用参数 4 1.2.5 返回值 ...

    《学生成绩管理系统的设计》c程序设计

    b、基本功能用函数实现; c、至少完成实验内容中6个功能,学生可以自己增加或减少题目功能; d、程序能正确执行、输入与输出有必要的提示信息、界面美观; e、 用菜单调用加分。使用链表加分。 四、实验结果及分析...

    《数据结构》实验

    3、假设有两个按元素值递增有序的线性表A和B,均以单链表作存储结构,试编写算法将A表和B表归并成一个按元素值递减有序的线性表C,并要求利用原表的空间存放C。 要求:熟练掌握线性表的单链式链接存储结构及在其上...

    用c描述的数据结构演示软件

    (2)删除顺序表中一个数据元素(del_sqlist) (3)合并两个有序顺序表(merge_sqlist) 2. 链表 (1)创建一个单链表(Crt_LinkList) (2)在单链表中插入一个结点(Ins_LinkList) (3)删除单链表中的一个结点...

    数据结构算法与应用-C C++语言描述

    1.4.6 增加#ifndef, #define和#endif语句 24 1.5 测试与调试 24 1.5.1 什么是测试 24 1.5.2 设计测试数据 26 1.5.3 调试 28 1.6 参考及推荐读物 29 第2章 程序性能 30 2.1 引言 30 2.2 空间复杂性 31 2.2.1 空间复杂...

    二级C语言公共基础知识

    (25) 关系模型的数据*纵即是建立在关系上的数据*纵,一般有______、增加、删除和修改四种*作。 答:查询 (26) 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。 答:空间复杂度和时间复杂度 ...

    知名公司数据结构笔试题及答案

    3.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 4.下面哪种排序法对12354最快 a quick sort b.buble sort c.merge sort 5.哪种结构,平均来讲,获取一个值最快 a. binary tree b. ...

    员工管理系统C数据结构课程设计报告报告.doc

    掌握线性表的两种存储方法〔顺序表和链式表〕,并体会两者差异。 4. 掌握线性表的表示和实现。 5. 学会使用线性表解决一些相关的实际问题。 6. 二、使用环境 Microsoft Visual C++ 6.0 三、正文 1.需求分析 员工...

    数据结构面试(含数据结构基础内容).doc

    在单链表中,增加头结点的目的是(方便运算的实现) 9.循环链表的主要优点是(从表中任一结点出发都能访问到整个链表) 10.线性表L=(a1,a2,a3,……ai,……an),下列说法正确的是(D) A.每个元素都有一个直接前件...

    JAVA面试题

    在单链表中,增加头结点的目的是(方便运算的实现)9.循环链表的主要优点是(从表中任一结点出发都能访问到整个链表)10.线性表L=(a1,a2,a3,……ai,……an),下列说法正确的是(D) A.每个元素都有一个直接前件...

    《数据结构 1800题》

    6.算法可以用不同的语言描述,如果用C 语言或 PASCAL语言等高级语言来描述,则算法实际上就是程序 了。( )【西安交通大学 1996 二、7(3分)】 7.程序一定是算法。( )【燕山大学 1998 二、2(2分)并改错】 8....

Global site tag (gtag.js) - Google Analytics