線性表的順序結構,OC語言實現

2021-10-04 13:52:44 字數 2352 閱讀 5743

在高階語言中,借助陣列,實現乙個順序表很容易,如果需要自己實現陣列的邏輯,那就不太容易了。

這裡直接使用現成的陣列,來實現乙個順序結構的線性表,思想是有的。陣列保證了線性表的順序。

線性表類sqlist

sqlist.h

#import @class element;

ns_assume_nonnull_begin

/// 線性表的順序結構oc語言實現

@inte***ce sqlist : nsobject

// 表長

@property (nonatomic, readonly) nsuinteger count;

// 插入元素

- (void)insertelement:(element *)element atindex:(nsuinteger)index;

// 刪除元素

- (void)removeelementatindex:(nsuinteger)index;

// 讀取對應的元素

- (element *)elementatindex:(nsuinteger)index;

@end

ns_assume_nonnull_end

sqlist.m

#import "sqlist.h"

#import "element.h"

#import @inte***ce sqlist ()

// 儲存資料的容器

@property (nonatomic, strong) nsmutablearray *listarray;

// 表長

@property (nonatomic, readwrite) nsuinteger count;

@end

@implementation sqlist

#pragma mark - private

- (nsmutablearray *)listarray

return _listarray;

}#pragma mark - public

- (nsuinteger)count

- (void)insertelement:(element *)element atindex:(nsuinteger)index

((void (*)(id, sel, nsuinteger))objc_msgsend)(element, @selector(setindex:),index);

[self.listarray insertobject:element atindex:index];

}- (void)removeelementatindex:(nsuinteger)index

- (element *)elementatindex:(nsuinteger)index

return nil;

}@end

元素類element

element.h

#import ns_assume_nonnull_begin

/// 元素類,該類定義了元素的資料、下標等

@inte***ce element : nsobject

// 資料

@property (nonatomic) int data;

// 下標

@property (nonatomic, readonly) nsuinteger index;

// 初始化

- (instancetype)initwithdata:(int)data;

@end

ns_assume_nonnull_end

element.m

#import "element.h"

@implementation element

- (instancetype)init

- (instancetype)initwithdata:(int)data

return self;

}- (void)setindex:(nsuinteger)index

@end

測試**

#import "element.h"

@implementation element

- (instancetype)init

- (instancetype)initwithdata:(int)data

return self;

}- (void)setindex:(nsuinteger)index

@end

線性表 順序儲存結構 C語言實現

參考 大話資料結構 程杰 部落格 豆瓣 主要包括 列表定義 判斷列表是否為空 初始化列表 列印列表 清空列表 得到第i個位置元素 元素定位 列表第i個元素插入 列表第i個元素刪除 計算列表長度 include include define ok 1 define error 0 define tru...

線性表的順序儲存結構(C語言實現)

最近在研究資料結構,看了好多資料結構方面的書,但好多書都是用的偽 實現,對初學者或者語言功底不深厚的同學來說很不友好,也有好多書說是用c語言實現,但應用了c 的東西,比如c 中的引用,導致 晦澀難懂。學資料結構不能只是看書,一定要將各種結構用 實現,我也將各個部分實現的 貼出來。首先是線性表的順序儲...

資料結構 線性表 順序表(C語言實現)

這一系列部落格僅為自己學習記錄只用,不具有太多參考價值,只為了在日後回頭觀望時,溫故而知新,繼續前行。線性表的基本定義與操作 ifndef seqlist h include define seqlist h include include include include define seq in...