码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-10-05 13:15:12      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

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

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

标签:

原文地址:http://www.cnblogs.com/xiaoyoucai/p/5932045.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!