在高階語言中,借助陣列,實現乙個順序表很容易,如果需要自己實現陣列的邏輯,那就不太容易了。線性表類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...