OC實現乙個簡單的單鏈表

2021-10-03 02:45:09 字數 1407 閱讀 3321

好久之前學習資料結構的時候寫的,不是很完整,在這裡備份乙份筆記,有時間了繼續補全。

#import @inte***ce mmnode : nsobject

@property (nonatomic, assign) int data;//節點資料

@property (nonatomic, strong) mmnode *next;//下乙個節點

@end

mmlist.h

#import #import "mmnode.h"

@inte***ce mmlist : nsobject

@property (nonatomic, strong) mmnode *head;//首節點

@property (nonatomic, strong) mmnode *hail;//尾節點

//初始化

- (instancetype)initwithdata:(int)data;

//增加節點

//輸出

- (void)printlist;

//指標反轉

- (void)reverse;

@end

mmlist.m

#import "mmlist.h"

@implementation mmlist

- (instancetype)initwithdata:(int)data

return self;

} //建立新節點

mmnode *node = [[mmnode alloc] init];

node.data = data;

node.next = nil;

//之前的尾節點的next節點是現在新的節點

self.hail.next = node;

//將新節點設定成最新的尾節點

self.hail = node;

}- (void)printlist

}- (void)reverse

self.head = prev;

}@end

這裡實現了單鏈表的最基礎的幾個方法,增加資料、鍊錶輸出、鍊錶指標反轉。

int main(int argc, const char * ar**) 

nslog(@"首節點資料:%@ ;尾節點:%@",list.head,list.hail);

//輸出

[list printlist];

//逆轉指標

[list reverse];

//再次輸出

[list printlist];

}return 0;

}

php實現乙個單鏈表

單鏈表,節點只有乙個指標域的鍊錶。節點包括資料域和指標域。鍊錶乙個很重要的特性,就是這個頭節點 head。它絕對不能少,每次遍歷都要從它開始,並且不能移動頭節點,應該用乙個變數去代替他移動。腦袋裡要有鍊錶的結構。這是關鍵。來一段 class node 鍊錶有幾個元素 function countno...

反轉乙個單鏈表

思路二 反轉乙個鍊錶 示例 結構體定義 先對原鍊錶做頭刪操作,再對新鍊錶做頭插定義乙個新head頭指標,標記為newhead,將它初始為null,並非指向null,最後我們選擇返回這個newhead指標作為新鍊錶的頭指標。定義乙個結點node作為 臨時中轉站 初始化與否並無大影響。進行迴圈遍歷鍊錶各...

定義乙個單鏈表

鍊錶是一種物理儲存結構上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的 鍊錶是由乙個乙個的節點相連線的,每乙個節點都是乙個物件,都有兩個屬性 data,next 根據鍊錶的結構可以分為 1.帶頭 不帶頭 2.單向 雙向 3.迴圈 非迴圈 這些組合起來就有8種結構 編寫乙...