seqlist.h
#ifndef seqlist_h
#define seqlist_h
#includeusing namespace std;
typedef enumstatus;
templateclass seqlist
; //順序表的預設長度
type *base; //存放元素陣列的首位址
int capacity; //順序表的容量
int size; //順序表實際存放元素的個數
private://為內部函式所呼叫,不希望在類外訪問
bool isfull()
bool isempty()
status destory()
public:
seqlist(int sz = defaultsize)
~seqlist()
status push_back(const type &x)
base[size++] = x;
return true;
} status push_front(const type &x)
for (int i = size - 1; i >= 0; --i) //------------------>從最後乙個元素到第乙個元素依次往後移動乙個位置
base[i+ 1] = base[i];
base[0] = x;
size++;
return false;
} void show_list()
status pop_back(type &x)//將刪除的元素存放在x中,以備不時之需
x = base[--size];
return true;
} status pop_front(type &x)
x = base[0];//將刪除的元素儲存在x中,以備不時之需
for (int i = 1; i <= size - 1; ++i) //--------------->從第二個元素到最後乙個元素,依次覆蓋前乙個元素
base[i - 1] = base[i];
size--;
return true;
} status insert_pos(int pos,const type &x)
if (isfull())
for (int i = size - 1; i >= pos; --i)//--------------->從最後乙個元素到所插入的位置的元素依次往後移動乙個位置,為所要插入的元素留出位置
base[i + 1] = base[i];
base[pos] = x;
size++;
return true;
} status delete_pos(int pos,type &x)
if (isempty())
x = base[pos];
for (int i = pos + 1; i < size; ++i)//從刪除位置後面的第乙個元素開始依次覆蓋前乙個元素
base[i - 1] = base[i];
size--;
return true;
} int find(const type &x)
return -1;
} void sort()//氣泡排序
}}
} void reserve()//左右對稱位置交換 }
status insert_val(const type &x)
sort();
for (int i = 0; i < size; ++i)
}base[size++] = x;//不存在比所要插入元素大的元素,在最後位置插入它
return true;
} /*
status insert_val(const type &x)//用while取代for
sort();
int i = 0;
while(ibase[i])
insert_pos(i,x);
return true;
} */
status delete_val(const type &x)
break;
case 2:
cout << "請輸入要插入的元素(-1結束):>";
while (cin >> item, item != -1)
break;
case 3:
mylist.show_list();
break;
case 4:
mylist.pop_back(item);
break;
case 5:
mylist.pop_front(item);
break;
case 6:
cout << "請輸入要插入的元素:";
cin >> item;
mylist.insert_val(item);
break;
case 7:
cout << "請輸入要插入的位置:";
cin >> n;
cout << "請輸入要插入的元素:";
cin >> item;
mylist.insert_pos(n,item);
break;
case 8:
cout << "請輸入要查詢的元素:";
cin >> item;
cout << mylist.find(item) << endl;
break;
case 9:
cout << "請輸入要刪除的位置:";
cin >> n;
mylist.delete_pos(n,item);
break;
case 10:
cout << "請輸入要刪除的元素:";
資料結構之順序表 C 版
include include define maxlistsize 100 預設的儲存空間最大容量 using namespace std typedef string elemtype typedef structsqlist 俗稱順序表 void initlist sqlist l void ...
資料結構之順序表(java版)
要點 順序表 採用順序儲存結構的線性表 順序儲存結構和鏈式儲存結構不同,強調的是儲存元素在實體地址儲存的上連續!可實現隨機訪問 只要知道第乙個元素的記憶體位址,再通過簡單的加減就能找到任意乙個元素了 順序表耗時在對移動元素上,進行插入 刪除時都需要移動元素 本人做順序表的難點主要在於對順序表進行插入...
資料結構 順序表的實現(C語言版)
include define maxn 100 typedef int status using namespace std typedef structsqlist 初始化順序表 status initlist sqlist l 順序表的插入 將要插入的新元素e放到第i個位置 status lis...