1 1單鏈表

2021-07-05 10:44:49 字數 1349 閱讀 3052

#includeusing namespace std;

typedef struct node

lnode,*linklist;

//建立空單鏈表

linklist creat_linklist(void)

return h;

}//銷毀單鏈表

void destroy_linklist(linklist *h)

free(p);

*h=null;

}//求表長(迴圈鍊錶求表長)

int length_linklist(linklist h)

return count;

}//查詢操作

//按序號查詢

linklist locate_linklist_pos(linklist h,int i)

if(j!=i||!p)

return p;

}//按值查詢

linklist locate_linklist_value(linklist h,int x)

return p;

}//插入

int insert_linklist(linklist h,int x)

if(h->next==null)//當鍊表為空時,插入第乙個元素

else //在頭指標和最後乙個元素之間插入

q->next=p;

p->next=h->next;

} return 1;

}//刪除

int del_linklist(linklist h,int i)

p=locate_linklist_pos(h,i-1);

if(p==null||p->next==null)

q=p->next;

p->next=q->next;

free(q);

return 1;

}int josephus_linklist(linklist josephus_link,int s,int m)

p=josephus_link;

for(i=0;inext; //用p作為第s個結點指標(開始結點)

cout<<"輸出約瑟夫序列:"coutpre->next=p->next;

free(p);

p=pre->next;//從下乙個開始迴圈

} coutfree(p);

return 1;

}int main()

for(i=0;i<12;i++)

cout

return 0;

}

1 1單鏈表

1.1單鏈表 9.28 ifndef list h struct node typedef struct node ptrtonode typedef ptrtonode position typedef ptrtonode list list makeempty list l int isempt...

11 判斷單鏈表是否有環

判斷單鏈表是否有環 這裡也是用到兩個指標,如果乙個鍊錶有環,那麼用乙個指標去遍歷,是永遠走不到頭的。因此,我們用兩個指標去遍歷 first指標每次走一步,second指標每次走兩步,如果first指標和second指標相遇,說明有環。時間複雜度為o n 方法 方法 檢測單鏈表是否有環 public ...

單鏈表(合併單鏈表)

單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標head開始訪問,沿著next指標所指示的方向依次訪問每乙個結點,且每個結點只能訪問依次,直到最後乙個結點為止。遍歷時注意,不要改變head指標的指向。因此一般設定另外的乙個指標變數如p,p從head開始依次訪問乙個結點,直到鍊錶結束,此時p null,完成依次...