Data Structure(1-4)---單鏈表的讀取

對於單鏈表,實現獲取第i個元素的數據的操作GetElem,在算法上,相對要麻煩一些。

算法思路(獲取第i個數據):

  1. 聲明一個指針p指向鏈表的第一個結點,初始化j從1開始;
  2. 當j < i 時,就遍歷鏈表,讓p的指針向後移動,不斷指向下個結點,j累加1;
  3. 若到鏈表末尾p爲空,則說明第i個結點不存在;
  4. 否則查找成功,返回結點p的數據。
/*用e返回L中第i個數據元素的值*/
Status GetElem(LinkList L,int i,ElemType *e)
{
    int j=1;
    LinkList p;  /*聲明一個指針p*/
    p=L->next;   /*讓p指向鏈表L的第一個結點*/
    while(p && j<i)
    {
        p=p->next;   /*讓p指向下一個結點*/
        ++j;
    }
    if(!p || j>i)
    {
        return ERROR;  /*第i個結點不存在*/
    }
    *e=p->data;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章