数据结构之第二章线性表~~继续

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构之第二章线性表~~继续相关的知识,希望对你有一定的参考价值。

                 (3)顺序表的查找

                 

int locatlink(PNODE head,int e,int (*compare)(int ,int ))
    {//在head中查询第一个满足条件的元素的位置,若不存在,则返回-1
        i;
while(i<head.length&&!(*compare)(head.elem[i],e))
    ++i;
if(i<head.length)
    return i;
else 
    return -1;
}

              有序表的合并

void hebing(PNODE head1,PNODE head2,PNODE head3){
    int i=0,j=0,k=0;
    head3.listsize=head3.length=head1.length+head2.length;
    head3.elem=(PNODE)malloc(sizeof(NODE));
    if(head3.elem==NULL)
    exit(-1);
    while(i<head1.length&&j<head2.length)//合并
    {
        if(head1.elem[i]<=head2.elem[j])
        {
            head3.elem[k++]=head1.elem[i++];
            
         }
        else 
             head3.elem[k++]=head2.elem[j++]; 
    }
    while(i<head1.length)//插入head1的剩余元素
    {
        head3.elem[k++]=head1.elem[i++];
        
    }
    while(j<head2.length)
    {
        head3.elem[k++]==head2.elem[j++];
    }
 }

   插入,删除,查找,合并的算法的时间复杂度

插入,删除,查找,合并的算法的时间复杂度
操作 元素移动(或比较)最少 元素移动(或比较)最多 元素移动(或比较)平均
插入 0 n n/2
删除 0

n-1

(n-1)/2

查找 1 n

(n+1)/2

有序表的合并

n1+n2

n1+n2 n1+n2

总结~~~~(1)对于顺序表的查找我还是不怎么懂,这一点自己要多看,以下是自己从别的地方找来的,自己可以多理解理解   ~~~需知道节点的位置及地址或者知道这个节点所在链表的序号

以上是关于数据结构之第二章线性表~~继续的主要内容,如果未能解决你的问题,请参考以下文章

数据结构之第二章线性表之静态链式存储

(王道408考研数据结构)第二章线性表-第三节1:单链表的定义及其操作(插入和删除,建立之尾插和头插)

数据结构之第二章线性表

数据结构之第二章线性表之链式存储

第二次作业-线性表

数据结构学习小结2 (第二章:线性表)