單鏈表的反序:將已有鍊錶的節點的值反序
廢話不多說直接上**;下面**提供了兩個版本,sll_reverse是我自己做的時候想的笨辦法,answer_reverse是我在網上看的乙個版本(非常精簡)。
1 #include2 #include 3#define n 5
4 typedef struct
nodenode;
8 node* sll_reverse(node *first);
9int sll_insert( register node **linkp, int
new_value );
10void print(node*rootp);
11 unsigned int count(node*linkp);
12struct node *answer_reverse( struct node *current );
13int main (void
) 14
29 unsigned int count(node*linkp)
3038
while
(tmp)
3943
return
num;44}
45 node* sll_reverse(node *first)
4662 newnode->link=null;
63 newnode->value=p[n-1];//
建立鍊錶的第乙個節點,並把動態陣列的最後乙個值賦值
64for(i=n-2;i>=0;i--)//
從動態陣列打的倒數第二個資料開始,一次不排序的插入到新鍊錶中
65 insert(&newnode,p[i]);
66return
newnode;67}
68struct node *answer_reverse( struct node *current )//
答案的版本
6977
while(current!=null)
7884
return
previous;85}
86int insert(node **linkp,int
value)
87100
int101 sll_insert( register node **linkp, int
new_value )
102122
void print(node*rootp)
123132 }
秒懂單鏈表及其反轉 reverse
什麼是鍊錶,這種資料結構是由一組node組成的,這群node一起表示了乙個序列。鍊錶是最普通,最簡單的資料結構 實體地址不連續 它是實現其他資料結構如stack,queue等的基礎。鍊錶比起陣列來,更易於插入,刪除。node可以定義如下 typedef int element type typede...
單鏈表(合併單鏈表)
單鏈表遍歷 單鏈表遍歷是從單鏈表頭指標head開始訪問,沿著next指標所指示的方向依次訪問每乙個結點,且每個結點只能訪問依次,直到最後乙個結點為止。遍歷時注意,不要改變head指標的指向。因此一般設定另外的乙個指標變數如p,p從head開始依次訪問乙個結點,直到鍊錶結束,此時p null,完成依次...
單鏈表之排序單鏈表
package list public class sortedsinglylist extends singlylist 將values陣列中的所有物件按值大小插入 public sortedsinglylist t values 過載深拷貝,由單鏈表構建排序單鏈表 public sortedsi...