码迷,mamicode.com
首页 > 编程语言 > 详细

guoshiyv 数据结构与算法2-1 线性链式存储

时间:2017-06-19 14:16:21      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:通过   span   data   ext   nbsp   数据结构与算法   tty   fine   包含   

  线性链式存储:

     包含两部分:1.存储的单个元素

                                    2.指针,指向下一个的地址

 

typedef struct()
{
     ElementType Data;
     struct Node *Next;
}List ;
List L,Ptrl;

Ps:算法应保证具有可移植性,(ElementType)

 

  表长函数,相比顺序数组存储复杂,需要遍历所有元素

       定义一个新指针,始终指向当前的这个链表。

 

int length(List *Ptrl)
{   int i=0;
    List *p=Ptrl;
    while(p!=NULL)
       { p=p->Next; //通过指针实现了链表的链接
        i++:}
      return i;

}

 

   下面进行查找数据,有两种查询方式,一种按第几个元素查找,一种按数据值查找。

 

按第几个元素查找:
List *FineKth(int K,List *Ptrl)
{    List *p=Ptrl;
     int i=1;
     while(p!=Null && i<K)
        {   p=p->Next;
            i++;
         } 
    if(i==K) return p;
    else return NULL;

}                              

        K有查找范围,处理特殊情况时候:1. K<1 ,直接执行return NULL

                                                               2.K>链表长度的时候 此时p=Null,也是return NULL

                                                               3.因此不可以直接 return p; 

按数据值查询:
List *FindKth(List *Ptrl,ElementType x)
{
     List *p=Ptrl;
     while(p->Next!=NULL && p->Data!=x)
              p=p->Next;
     return p;
}

           由于没有类似的K值的限制,可以直接return p

 

 

 

guoshiyv 数据结构与算法2-1 线性链式存储

标签:通过   span   data   ext   nbsp   数据结构与算法   tty   fine   包含   

原文地址:http://www.cnblogs.com/guoshiyv/p/7048154.html

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