线性表基本操作——删除,插入等
程序员文章站
2022-07-14 19:49:55
...
第二章
线性表基本操作
(类C语言描述)
若一个元素占p个字节,则线性表第i个元素ai的存储位置,LOC(ai) = LOC(a1) + (i-1)*p;
线性表动态分配内存
#define LIST_INIT_SIZE 100 //线性表初始内存分配量
#define LISTINCREMENT 10 //线性表存储分配量
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;
删除一个元素
Status ListDelete_Sq(SqLiist &L,int i,ElemType &e)
{
if((i<1)||(i>L.Length)) return ERROR;
p = &(L.elem[i-1]); //被删除元素位置
e = *p; //表尾元素位置
q = L.elem + L.length -1;
for(++p;p<=q;++p) *(p-1) = *p;//被删除元素左移
--L.Length;
return ok;
}
插入一个元素
Status ListInsert_Sq(SqLiist &L,int i,ElemType &e)
{//于顺序表第i个位置之前插入新元素
if((i<1)||(i>L.Length)) return ERROR;
if(L.Length >= L.Listsize)
{
newbase = (ElemType *)realloc(L.elem,(L.LISTINCREMENT)*sizeof(ElemType));
if(!newbase) exit(OVREFLOW);
L.elem = newbase; //新基址
L.Listsize += LISTINCREMENT; //增加存储容量
}
q = &(L.elem[i-1]); //q为插入的位置
for(p=&(L.elem[Length-1]);p>=q;--p)
*(p + 1) = *p;
*q =e;
++ L.length;
return ok;
}
下一篇: 数据结构学习笔记day3
推荐阅读
-
js中数组插入、删除元素操作的方法
-
【B树操作实例】实例讲解插入、删除元素的过程
-
jQuery:节点(插入,复制,替换,删除)操作
-
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
-
MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)
-
链表的创建,插入,删除,输出基本操作
-
C#操作SQLite数据库方法小结(创建,连接,插入,查询,删除等)
-
oracle数据库解锁表、删除用户和表空间等操作讲解
-
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
-
Python列表常见操作详解(获取,增加,删除,修改,排序等)