iOS標(biāo)準(zhǔn)庫中常用數(shù)據(jù)結(jié)構(gòu)和算法之鏈表

上一篇:iOS系統(tǒng)中的常用數(shù)據(jù)結(jié)構(gòu)之查找

?雙向鏈表

功能:對雙向鏈表進(jìn)行添加、刪除功能。
頭文件:#include <search.h>
平臺:POSIX
函數(shù)簽名

//將某個鏈表元素element插入到pred后面。如果pred為NULL則表示element就是鏈表的頭部。
void insque(void *element, void *pred);
//將鏈表元素element從鏈表中刪除。
void remque(void *element);

參數(shù)
element:[in] 要添加或者刪除的鏈表元素。
pred:[in]鏈表插入元素element的前綴元素。

描述
系統(tǒng)并沒有規(guī)定鏈表的數(shù)據(jù)結(jié)構(gòu),但是要求鏈表元素結(jié)構(gòu)體中的前面兩個數(shù)據(jù)成員必須是分別指向后一個元素和前一個元素。下面就是鏈表元素結(jié)構(gòu)體模板:

 struct que_elem {
    struct que_elem *next;
    struct que_elem *prev;
        //其他自定義數(shù)據(jù)成員
};

上述的兩個函數(shù)只負(fù)責(zé)將元素插入鏈表以及將元素從鏈表中刪除,至于維護(hù)鏈表的表頭或者鏈表的數(shù)量以及鏈表元素的內(nèi)存分配和銷毀則需要我們自身去維護(hù)。

示例代碼:

//student結(jié)構(gòu)體必須要滿足上面鏈表元素的結(jié)構(gòu)體定義規(guī)則
typedef student
{
   struct student *next;
   struct student *prev;
   int age;
   char *name;
}student_t;

void traverse(student_t *head)
{
     while (head->next != NULL)
    {
         printf("student's age = %d, name=%s\n",head->age, head->name);
         head = head->next;
    }
}

void main()
{
     student_t *student1 = malloc(sizeof(student_t));
     student1->age = 10;
     student1->name = "Alex";

     student_t *student2 = malloc(sizeof(student_t));
     student2->age = 20;
     student2->name = "Bob";

     //student1作為鏈表的表頭
     insque(student1, NULL);
     //student2插入到student1后面
     insque(student2, student1);

    //遍歷鏈表
     traverse(student1);

      //刪除student1
      remque(student1);
      free(student1);

      //刪除student2
      remque(student2);
      free(student2);
}

下一篇:iOS標(biāo)準(zhǔn)庫中常用數(shù)據(jù)結(jié)構(gòu)和算法之排序


歡迎大家訪問歐陽大哥2013的github地址簡書地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 歷時一天半的月考結(jié)束了,本來忐忑不安的心也落了下來。成績算不上理想,也算不上不理想。這次月考,讓我見識了仰慕已久的...
    好豆豆yian閱讀 415評論 0 1
  • 第十七章 艾瑞,以及?! (前情回顧:www.itdecent.cn/p/08faa6c46beb) “住手!”熟...
    _響君閱讀 328評論 0 0
  • 周末時間,趁著天氣很好,于是去西南大學(xué)逛了一圈 隨手一拍,沒有美圖,沒有濾鏡(如果漂亮的話,那一定是校園本身就很美...
    只有冬夏沒有春秋閱讀 479評論 0 1

友情鏈接更多精彩內(nèi)容