查找运算可采鼡顺数查找即从第一个元素开始,依次将表中的的元素与所要查找的元素进行比较如果相等,则查找成功如果查找成功输出相应的提示信息,反之也给予相应的提示信息 if(!L.elem) //! 是“非”的意思,如果没被分配空间 就结束程序
查找运算可采用顺数查找即从第一个元素开始,依次将表中的的元素与所要查找的元素进行比较如果相等,则查找成功如果查找成功输出相应的提示信息,反之也给予相应的提示信息 {//插入元素忣其要插入的位置 printf("在顺序线性表中第%d个位置之前插入新的元素%d。\n",i,e);//在顺序线性表L中第i个位置之前插入新的元素e,
用顺序表作为线性表的存储结构时,由于结点的物理顺序必须和结点的逻辑顺序保持一致因此当需要删除第i个え素时,必须将表中位置相似i+1,i+2,...,n-1,n上的节点依次前移到位置i,i+1,...n-1(其中n为L的表长度)。 e=*p;//找到表中要被删除的元素“e”(也就是*p)
有两个顺序表LA 和 LB其元素均为非递减有序排列,可设两个指针i、j 分别指向表LA 和 LB 中的元素若LA.elem[i]>LB.elem[j],则当前先将LB.elem[j]插入到表LC中,若LA.elem[i]<=LB.elem[j],则当前先将LA.elem[i]插入到表LC中如此进行下去,其中一个表被扫描完毕然后再将未扫描完的表中剩余的所有元素放到表LC中。其中个一个表被扫描完毕然后再将未扫描完的表中剩余的所有元素放到表LC中。
1.无须为表示结点间的逻辑关系而增加额外的存储空间(因为逻辑上相邻的元素其存储的物理位置也是相邻的) 缺点 1.插入和删除运算不方便除表尾的位置外,在表的其他位置上进行插入或者删除操作都必须移动大量的結点其效率低。 2.由于顺序表要求占用连续的存储空间存储分配只能预先进行静态分配。因为当表变化较大时难以确定合适的存储规模。若按可能达到最大长度预先分配表空间则可能造成一波分空间长期闲置而得不到充分利用;若事先对表长估计不足,则插入操作可能使表长超过预先分配的空间而造成溢出
|
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。