線性表的順序實現,採用c++封裝了乙個類,歡迎各位感興趣的同學共同學習討論。
/*******定義******/
#ifndef _cseqlist_
#define _cseqlist_
#ifdef __cplusplus
extern "c" seqlist;
class cseqlist
; seqlist *seq;
};#ifdef __cplusplus
} #endif
#endif
/*******實現******/
#include "cseqlist.h"
#include
#include
#include
cseqlist::cseqlist()
cseqlist::~cseqlist()
int cseqlist::initlist(void)
seq->elem = (datatype*)malloc(list_init_size*sizeof(datatype));
if (seq->elem == null)
memset(seq->elem, 0x00, list_init_size*sizeof(datatype));
seq->length = 0;
seq->listsize = list_init_size;
return ok;
}void cseqlist::destroylist()
if (seq->elem)
seq->length = 0;
seq->listsize = 0;
cout<<"destroylist success!"if (seq->elem)
seq->length = 0;
seq->listsize = list_init_size*sizeof(datatype);
int cseqlist::listempty() const
if (seq->length == 0)
else
int cseqlist::listlength() const
return seq->length;
}void cseqlist::getelem(int i, datatype *e) const
if (e == null)
if (i < 1 || i > listlength())
if (seq->elem == null)
*e = seq->elem[i];
}void cseqlist::priorelem(int cur_e, datatype *pre_e) const
if (cur_e <= 1 || cur_e > listlength())
if (seq->elem == null)
if (pre_e == null)
*pre_e = seq->elem[cur_e - 2];
void cseqlist::nextelem(int cur_e, datatype *next_e) const
if (cur_e < 1 || cur_e >= listlength())
if (seq->elem == null)
if (next_e == null)
*next_e = seq->elem[cur_e ];
int cseqlist::listinsert(int i, datatype e)
if (i < 1 || i > listlength() + 1)
if (seq->elem == null)
if (seq->length >= seq->listsize)
seq->elem = newbase;
seq->listsize += listincerment;
} datatype *p, *q;
q = &seq->elem[i - 1];
p = &seq->elem[seq->length - 1];
for (; p >= q; --p)
*q = e;
++seq->length;
return ok;
int cseqlist::listdelete(int i, datatype *e)
if (i < 1 || i > listlength())
if (seq->elem == null)
datatype *p, *q;
q = &seq->elem[i - 1];
*e = *q;
p = &seq->elem[seq->length - 1];
for (++q; q <= p; ++q)
--seq->length;
return ok;
void cseqlist::showlist(void) const
C 實現順序表(線性表)
基本思想是使用陣列作為盛放元素的容器,陣列一開始的大小要實現確定,並使用乙個pointer指向順序表中最後的元素。順序表中的元素是陣列中元素的子集。順序表在記憶體中是連續的,優勢是查詢,弱勢是插入元素和刪除元素。為避免裝箱拆箱,這裡使用泛型,代替object。使用object的例子可以參照這個鏈結中...
C 實現線性表的順序儲存(順序表)
關於資料結構中的 線性表 佇列 棧 的相關講解,請看 c 實現資料結構中的線性表 typedef int elementtype define maxsize 10 struct sequence typedef int element type define maxsize 10 include ...
線性表順序實現
線性表實現,建立表,插入元素,刪除元素,銷毀表,表的遍歷,表的並集交集差集。不斷更新中。include include include include define list init size 100 初始大小 define error 0 define listincrement 10 增量大小...