#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++实现顺序表,并增加按值查询和按值删除,附加:支持多值删除和多值插入。
实验目的: ...2. add_delete.cpp//增加和删除学生信息功能 3. stusys_h.h //头文件,包含预处理,常量定义,类型定义,函数声明 内容非常丰富,一定对你有帮助,有需要的小伙伴们抓紧时间下载吧!
数据结构复习试题——线性表 一、 选择题 1.下列哪一条是顺序存储结构的优点 【 】 A. 插入运算方便 B. 可方便地用于各种逻辑结构...8、在顺序表中插入或删除一个元素,需要平均移动 元素,具体移动的元素个数与 有关。
基本功能用函数实现; 至少完成实验内容中4个功能,学生可以自己增加或减少题目功能; 程序能正确执行、输入与输出有必要的提示信息、界面美观; 用菜单调用加分。用链表加分。 最后结果输出。要求:输出格式要...
(61) 数据结构中,与所使用的计算机无关的是数据的(C) A. 存储结构 B. 物理结构 C. 逻辑结构 D. 物理和存储结构 (62) 栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是...
删除与标注重复行、特殊数据行操作代码用字典法编写,比Excel公式与高级筛选提速几十倍。 1、重名查找与姓名美化:本软件不仅能查找同字重名,还能查找同音重名。执行此命令能够为某一列的重复数据(包含汉字同音)...
数据结构算法与应用-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 返回值 ...
b、基本功能用函数实现; c、至少完成实验内容中6个功能,学生可以自己增加或减少题目功能; d、程序能正确执行、输入与输出有必要的提示信息、界面美观; e、 用菜单调用加分。使用链表加分。 四、实验结果及分析...
3、假设有两个按元素值递增有序的线性表A和B,均以单链表作存储结构,试编写算法将A表和B表归并成一个按元素值递减有序的线性表C,并要求利用原表的空间存放C。 要求:熟练掌握线性表的单链式链接存储结构及在其上...
(2)删除顺序表中一个数据元素(del_sqlist) (3)合并两个有序顺序表(merge_sqlist) 2. 链表 (1)创建一个单链表(Crt_LinkList) (2)在单链表中插入一个结点(Ins_LinkList) (3)删除单链表中的一个结点...
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 空间复杂...
(25) 关系模型的数据*纵即是建立在关系上的数据*纵,一般有______、增加、删除和修改四种*作。 答:查询 (26) 实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 ______。 答:空间复杂度和时间复杂度 ...
3.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 4.下面哪种排序法对12354最快 a quick sort b.buble sort c.merge sort 5.哪种结构,平均来讲,获取一个值最快 a. binary tree b. ...
掌握线性表的两种存储方法〔顺序表和链式表〕,并体会两者差异。 4. 掌握线性表的表示和实现。 5. 学会使用线性表解决一些相关的实际问题。 6. 二、使用环境 Microsoft Visual C++ 6.0 三、正文 1.需求分析 员工...
在单链表中,增加头结点的目的是(方便运算的实现) 9.循环链表的主要优点是(从表中任一结点出发都能访问到整个链表) 10.线性表L=(a1,a2,a3,……ai,……an),下列说法正确的是(D) A.每个元素都有一个直接前件...
在单链表中,增加头结点的目的是(方便运算的实现)9.循环链表的主要优点是(从表中任一结点出发都能访问到整个链表)10.线性表L=(a1,a2,a3,……ai,……an),下列说法正确的是(D) A.每个元素都有一个直接前件...
6.算法可以用不同的语言描述,如果用C 语言或 PASCAL语言等高级语言来描述,则算法实际上就是程序 了。( )【西安交通大学 1996 二、7(3分)】 7.程序一定是算法。( )【燕山大学 1998 二、2(2分)并改错】 8....