数据结构之线性表——链式存储结构之单链表(php代码实现)

   & lt; php ?/* *   ,*   ,* 1只类LNode用作创建单链表时,生成新的节点。   ,* 2只类SingleLinkList用于创建单链表以及对单链表的一些操作方法(实例化此类就相当于创建了一个空链表)   ,* 3只CreateListHead:,具有美元num个数据元素的单链表的创建,头插法   ,* 4只CreateListTail:,具有美元num个数据元素的单链表的创建——尾插法   ,* 5只DestroyList:,销毁单链表   ,* 6只ClearList:清空单链表   ,* 7只ListEmpty:判断单链表是否为空   ,* 8只;ListLength:返回单链表数据元素的个数   ,* 9只GetElem:返回单链表中指定位置的数据元素   ,* 10只LocateElem:查找指定元素在单链表中的位序   ,* 11只PriorElem:获取指定元素的前面一个元素   ,* 12只NextElem:获取指定元素的后面一个元素   ,* 13只ListInsert:在指定位置之前插入一个数据元素   ,* 14只ListDelete:,删除指定位置的数据元素   ,* 15只ListTraverse:,遍历单链表的所有数据元素   ,*   ,*/class  LNode {   ,,,public 元数据;   ,,,public 下一美元;   ,,,public  function  __construct ($ data=https://www.yisu.com/zixun/null) {=$ $ this ->数据数据;   $ this -> next=零;   }   }      类SingleLinkList {   公共元数据;   公共美元未来;   公共函数__construct () {   $ this ->数据=零;   $ this -> next=零;   }//具有美元num个数据元素的单链表的创建,头插法   公共函数CreateListHead (num美元){   (我=0;美元我 data=mt_rand (100200);   $ node -> next=$ this ->下一个;   下=$ $ this ->节点;   }   }//具有美元num个数据元素的单链表的创建——尾插法   公共函数CreateListTail (num美元){   尾=美元;   (我=0;美元我 data=mt_rand (100200);   下=$ $尾巴->节点;   尾=美元节点;   }   $ node -> next=零;   }//销毁单链表   公共函数DestroyList () {//$ this相当于头指针,它指向的是头结点,$ this ->下相当于第一个结点//之所以需要将美元这个赋值给美元,是因为$ this无法用作变量进行赋值   $=$这个;   而(美元){   ->下一个节点=美元;   设置(美元);   $=$节点;   }   }//将单链表清空   公共函数ClearList () {   $ p=$ this -> next;   虽然($ p) {   $ node=$ p ->下一个;   设置($节点);   $ p=$节点;   }   $ this -> next=零;   }//判断单链表是否为空   公共函数ListEmpty () {   如果($ this -> next) {   返回错误;   其他}{   返回true;   }   }//返回单链表中数据元素的个数   公共函数ListLength () {   数=0;美元//初始化变量   $ p=$ this -> next;   虽然($ p) {   美元计数+ +;   $ p=$ p -> next;   }   返回$计数;   }//返回指定位置的数据元素   公共函数GetElem (pos) {   数=1美元;   $ p=$ this -> next;   虽然美元($ p & & $数 next;   }   如果(!$ p | | $ pos <$ count) {   返回“错误”;   ,,,,,,,}   ,,,,,,,return  $ p→数据;   ,,,}//,,,,或者   ,,,public  function  GetElem2 (pos) {   ,,,,,,,$ count=0;   ,,,,,,,p=这→美元未来;   ,,,,,,,,($ p) {   ,,,,,,,,,,,美元计数+ +;   ,,,,,,,,,,,如果数==美元(pos) {   ,,,,,,,,,,,,,,,return  $ p→数据;   ,,,,,,,,,,,}   ,,,,,,,,,,,p=p→美元未来;   ,,,,,,,}   ,,,,,,,return “错误”;   ,,,}      ,,,//查找指定元素在单链表中的位序   ,,,public  function  LocateElem (elem美元){   ,,,,,,,$ count=0;   ,,,,,,,p=这→美元未来;   ,,,,,,,,($ p) {   ,,,,,,,,,,,美元计数+ +;   ,,,,,,,,,,,如果美元($ p→data=https://www.yisu.com/zixun/=elem) {   返回$计数;   }   }   返回“错误”;   ,,,}      ,,,//获取指定元素的前面一个元素   ,,,public  function  PriorElem (elem美元){   ,,,,,,,p=这→美元未来;   ,,,,,,,如果(p 美元;,,,$ p→数据=https://www.yisu.com/zixun/elem美元){   返回$ p ->数据。已经是第一个元素,已无前驱元素”;   ,,,,,,,}   ,,,,,,,,(p 美元;,,,$ p→下){   ,,,,,,,,,,,q=$ p→美元未来;   ,,,,,,,,,,,如果美元(美元q→data=https://www.yisu.com/zixun/=elem) {   返回$ p ->数据;   }   p=$美元;   }   返回“错误”;   ,,,}      ,,,//获取指定元素的后面一个元素   ,,,public  function  NextElem (elem美元){   ,,,,,,,p=这→美元未来;   ,,,,,,,,(p 美元;,,,$ p→下){   ,,,,,,,,,,,如果美元($ p→data=https://www.yisu.com/zixun/=elem) {   返回$ p ->下一步->数据;   }   $ p=$ p -> next;   }   如果($ p & & $ p -> next==null) {   返回$ p ->数据。已经是最后一个元素,已无后继元素”;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

数据结构之线性表——链式存储结构之单链表(php代码实现)