1樓:網友
1.建立兩個指標struct* p,q,p=head,q=p->next,即最開始p指向連結串列的第1項,q指向第2項。
q->next !=null, p=p->next,q=q->next
q->next ==null,即q指向最後一項,p指向倒數第二項。
新建乙個指標,儲存原表尾的位址 struct*t=q
next=p,q=p //倒數第一項指向倒數第二項,將q指向倒數第二項。
p重新重表頭開始遍歷。
p->next !=q,p=p->next //如果p指向的不是q指向的前一項,則p繼續向後遍歷。
p->next ==q //q指向p的前一項。
8. q->next =p,q=p //重複第4步。
重複第5步。
n. until q=p=head
至此,原連結串列已經完全逆轉,然後讓頭指標指向原連結串列的表尾,即指向新連結串列的表頭 head=t,這樣就搞定了。
馬上要停電了,沒時間檢查,上面是我粗略的想法,應該有很好的改進方案,先關機,免得電腦被閃了。
在乙個具有n個結點的有序單連結串列中,插入乙個新結點並仍然保持有序的演算法時間複雜度是( )
2樓:清溪看世界
在乙個bai具有n個結點的du有序單連結串列中插入乙個zhi新結點,dao並使其仍然有。
內序的時間複雜性為o(容n);因為單連結串列儲存的資訊只有表頭如果要在特定位置插入乙個節點,需要先從表頭一路找到那個節點。
連結串列中的資料是以結點來表示的,每個結點的構成:元素(資料元素的映象) +指標(指示後繼元素儲存位置),元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。
已知乙個帶頭結點的單連結串列l。編寫演算法計算資料域值為x的結點個數。 單連結串列的型別定義如下: typedef struct node { elemtype data; /*資料域*/ struct node *next; /*指標域*/ } lnode, *link list;
3樓:
已知乙個帶頭結點的單連結串列l。編寫演算法計算資料域值為x的結點個數。 單連結串列的型別定義如下: typedef struct node lnode, *link list;
在乙個具有n個結點的有序單連結串列中,插入乙個新結點並仍然保持有序的演算法時間複雜度是( )
4樓:
摘要。親您好,在乙個具有n個結點的有序單連結串列中插入乙個新結點,並使其仍然有序的時間複雜性為o(n);因為單連結串列儲存的資訊只有表頭如果要在特定位置插入乙個節點,需要先從表頭一路找到那個節點。
連結串列中的資料是以結點來表示的,每個結點的構成:元素(資料元素的映象) +指標(指示後繼元素儲存位置),元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。
擴充套件資料:連結串列中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存每個結點值的同時,還必須儲存指示其後繼結點的位址(或位置)資訊。
連結串列中的資料是以結點來表示的,每個結點的構成:元素(資料元素的映象) +指標(指示後繼元素儲存位置),元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。
親您好,在乙個具有n個結點的有序單連結串列中插入乙個新結點,並使其仍然有序的時間複雜性為o(n);因為單連結串列儲存的資訊只有表頭如果要在特定位置插入乙個節點,需要先從表頭一路找到那個節點。連結串列中的資料是以結點來表示的,每個結點的構成:元素(資料元素的映象) +指標(指示後繼元素儲存位置),元素就是儲存資料的儲存單元,指標碼孫就是連線每個結點的位址資料。
擴充套件資料:連結串列中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在儲存每個結點值的同時,還必須儲存指示其後繼結點的位址(或位置)信飢明息。
連結串列中的資料是以結點來表示的,每個結點的構成:元素(資料元素的映象) +指標(指示後爛模告繼元素儲存位置),元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。
設計乙個演算法,通過一趟遍歷在單連結串列中確定所有節點資料的平均值。要求給出節點定義。然後寫出演算法。
5樓:
摘要。設計乙個演算法,通過一趟遍歷在單連結串列中確定所有節點資料的平均值。要求給出節點定義。然後寫出演算法。
您好,您諮詢的這個問題我已知悉,不能幫助你,抱歉!
求十幾道關於連結串列的題目,,例如:建立兩個單向連結串列,插入乙個節點就排序一次(從小到大或從大到小)
6樓:徐慶超
樓主能完成這幾個題目,以後就不用練習連結串列了1.單連結串列反轉。
2.找出單連結串列的倒數第4個元素。
3.找出單連結串列的中間元素。
4.刪除無頭單連結串列的乙個節點。
5.兩個不交叉的有序連結串列的合併。
6.有個二級單連結串列,其中每個元素都含有乙個指向乙個單連結串列的指標。寫程式把這個二級連結串列稱一級單連結串列。
7.單連結串列交換任意兩個元素(不包括表頭)
8.判斷單連結串列是否有環?如何找到環的「起始」點?如何知道環的長度?
9.判斷兩個單連結串列是否相交。
10.兩個單連結串列相交,計算相交點。
11.用連結串列模擬大整數加法運算。
12.單連結串列排序。
13.刪除單連結串列中重複的元素。
7樓:網友
如果有空,可以做做學生資訊管理系統,這個裡面用到的連結串列知識比較多。
資料結構之單連結串列基本運算的實現[12]
8樓:新科技
雙向連結串列結點的定義如下。
typedef struct node{
datatype data;
struct node *prior *next;
dunode *dlinklist;
和單連結串列類似 雙向連結串列也有幾種變形形式 圖 給出了帶頭結點的雙向連結串列示意圖 連結串列中存在從頭到尾和從尾到頭的兩條鏈;圖 給出了帶頭結點的雙向迴圈連結串列鎮睜示意圖 連結串列中存在兩個環。
顯然通過某結點的指標p可以直接得到它的後繼結點的指標p >next 也可以直接得到它的前驅結並畝點的指標p >prior 這樣在有些需要查詢前驅的操御蔽歲作中時間效率大大提高。
設p指向雙向迴圈連結串列中的某一結點 即p是該結點的指標 則p >prior >next表示的是*p結點之前驅結點的後繼結點的指標 即與p相等;類似 p >next >prior表示的是*p結點之後繼結點的前驅結點的指標 也與p相等 所以有以下等式。
p=p >prior >next = p >next >prior
雙向連結串列中結點的插入 設p指向雙向連結串列中某結點 s指向待插入的值為x的新結點 將*s插入到*p的前面 插入示意圖如圖 所示。
圖 雙向連結串列中的結點插入。
lishixinzhi/article/program/sjjg/201311/23077
關於連結串列的問題,一個關於連結串列的問題
以下是我寫的關於連結串列的一個類模版,實現了插入結點,刪除結點,將連結串列倒轉等功能,直接包含在主函式的檔案裡就可以用了 link.h ifndef link h define link h include template class link template class node templa...
急求關於二叉連結串列問題的演算法題,急求一個關於二叉連結串列問題的演算法題
1 求結點數的遞迴定義為 若為空樹,結點數為0 若只有根結點,則結點數為1 否則,結點數為根結點的左子樹結點數 右子樹結點數 1 2 求葉子數的遞迴定義為 若為空樹,葉子數為0 若只有根結點,則葉子數為1 否則,葉子數為根結點的左子樹葉子數 右子樹葉子數typedef char datatype 定...
如何利用廚房的物品設計乙個實驗 20
如何利用廚房的物品設計乙個實驗 茶壺中,由於使用時間久,會產生一些水垢 為難溶於水的鈣 鎂化合物 想要去除,就用醋。將醋倒入茶壺中,搖晃適當的時間,仔細看,會有一些小氣泡,靜止一會兒,會發現水垢減少且易清洗。此乃化學實驗。乙個透明玻璃杯,乙隻筷子,水。將適量的水倒入透明玻璃杯,再把筷子插入水中,筷子...