資料結構 之 線性表的實現
阿新 • • 發佈:2018-11-12
程式碼:
#include<algorithm> #include<iostream> #include<stdlib.h> #define MAXSIZE 1100 using namespace std; /* 線性表的實現 1.插入//ok 2.刪除//ok 3.在尾部增加//ok 4.從尾部彈出//ok 5.是否為空//ok 6.查詢//ok 7.根據下標獲取線性表中的值//ok */ //線性表的資料結構 class LineTable{ private: int date[MAXSIZE]; int maxsize;//最大容量 int size;//當前元素個數 public: LineTable() { maxsize=MAXSIZE; size=0; } bool push_back(int val) { if(size==MAXSIZE) return 0;//插入失敗 date[size++]=val; return 1; } bool pop_back(int &val)//從尾部彈出並返回該值 { if(!size) return 0; val=date[--size]; return 1; } bool empty() { if(!size) return 1; return 0; } bool find(int val,int &index) { for(int i=0;i<size;++i) { if(date[i]==val) { index=i; return 1; } } return 0; } bool erase(int sub,int &val)// { if(sub>=0&&sub<size) { for(int i=sub;i<size-1;++i) date[i]=date[i+1]; --size; return 1; } return 0; } bool index(int sub,int &val) { if(sub<size&&sub>=0) { val=date[sub]; return 1; } return 0; } bool insert(int index,int val) { if(size<MAXSIZE&&index>=0&&index<size) { for(int i=size-1;i>=index;--i) date[i+1]=date[i]; return 1; ++size; } return 0;; } bool print() { for(int i=0;i<size;++i) printf("%d%c",date[i],i==size-1?'\n':' '); return 1; } }; int main() { LineTable dch; int val; dch.push_back(1); dch.push_back(2); dch.push_back(3); dch.print(); dch.erase(1,val); dch.print(); }
改進:加異常處理可好