日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

理论基础 —— 线性表 —— 顺序表

發布時間:2025/3/17 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理论基础 —— 线性表 —— 顺序表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【實現類】

const int maxSize=100;//存儲空間初始分配量 template <class T> class SeqList{ private:T data[maxSize];//存放數據元素的數組int length;//順序表的長度 public:SeqList();//無參構造函數SeqList(T a[],int n);//有參構造函數~SeqList(){};//析構函數空int getLength();//獲取順序表的長度T getElement(int i);//獲取順序表的第i個元素int getPosition(T x);//獲取順序表中值為x的元素序號void insertElement(int i,T x);//在順序表中第i個位置插入值為x的元素T deleteElement(int i);//刪除順序表的第i的元素void print();//按序號依次輸出順序表各元素 };

【構造函數與析構函數】

1.無參構造函數與析構函數

無參構造函數創建一個空的順序表,將表長置為 0,析構函數使用默認析構函數即可。

template<class T> SeqList<T>::SeqList(){length=0;//長度為0 }

2.有參構造函數

有參構造函數將給定數組元素作為順序表的數據元素,傳入元素個數 n 作為順序表長度。

template<class T> SeqList<T>::SeqList(T a[], int n){if(n>maxSize) throw "參數非法";for(int i=0;i<n;i++)//給定元素作為順序表數據元素data[i]=a[i];length=n;//傳入元素個數作為順序表長度 }

【獲取順序表長度】

求順序表的長度只需返回成員變量 length 的值

template<class T> SeqList<T>::getLength(){return length; }

【查找元素】

1.按位查找

按位查找時,順序表中第 i 個元素存儲在數組中下標為 i-1 的位置,時間復雜度為 O(1)

template<class T> T SeqList<T>::getElement(int i){if(i<1&&i>length)throw "查找位置非法";elsereturn data[i-1]; }

2.按值查找

按值查找時,需要對順序表中元素依次進行比較,查找成功則返回元素的序號,查找失敗則返回 0,時間復雜度為 O(n)

template<class T> int SeqList<T>::getPosition(T x){for(int i=0;i<length;i++)if(data[i]==x)return i+1;//返回元素序號return 0;//查找失敗 }

【插入操作】

在順序表中的第 i 個位置插入值元素,需要先將第 n 個元素到第 i 個元素后移 1 位,再將元素插入位置 i,使長度為 n 的順序表變為 n+1,其時間復雜度為 O(n)

需要注意的是,在插入之前需要進行異常判斷,如果表滿,則引發上溢異常;如果插入位置不合理,則引發位置異常。

template<class T> void SeqList<T>::insertElement(int i,T x){if(length>=maxSize)throw "上溢";if(i<1||i>length+1)throw "位置異常";for(int j=length;j>=i;j--)//第n個到第i個元素依次后移data[j]=data[j-1];data[i-1]=x;//位置i插入元素length++;//長度+1 }

【刪除操作】

在順序表中的第 i 個元素刪除,需要先取出被刪除的元素,然后將第 i+1 個元素到第 n 個元素前移 1 位,最后將順序表的長度變為 n-1,其時間復雜度為 O(n)

需要注意的是,在刪除之前需要進行異常判斷,如果表空,則引發下溢異常;如果刪除位置不合理,則引發位置異常。

T SeqList<T>::deleteElement(int i){if(length==maxSize)throw "下溢";if(i<1||i>length)throw "位置異常";T x=data[i-1];//取出刪除元素for(int j=i;j<=length-1;j++)//第i個到第n個元素依次前移data[j]=data[j+1];length--;//長度-1return x; }

7.遍歷輸出

遍歷輸出即按照下標依次輸出各元素

template<class T> void SeqList<T>::print(){for(int i=0;i<length;i++)cout<<data[i]<<endl; } 新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的理论基础 —— 线性表 —— 顺序表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 麻豆出品 | jizz少妇| 污视频免费看 | 亚洲视频自拍偷拍 | 欲求不满在线小早川怜子 | 日本黄区免费视频观看 | 亚洲色图婷婷 | 黄色片久久久 | 一级片大全| 一道本在线 | 久久综合av | 开心激情久久 | 欧美乱色 | 亚洲最大福利视频 | 日本网站免费观看 | 久久久高清视频 | 亚洲精品蜜桃 | 激情福利| 美女啪啪av | 曰本女人与公拘交酡 | 日本中文不卡 | 国产黑丝一区 | 麻豆视频在线观看免费网站黄 | 中文av一区二区三区 | 亚洲欧美日韩在线不卡 | 三浦惠理子aⅴ一二三区 | 久久久国产片 | 一区二区美女 | 在线天堂中文字幕 | 黄页网站免费在线观看 | 老司机亚洲精品 | 人与嘼交av免费 | 亚洲无码精品在线观看 | 久久机热这里只有精品 | 黄色一机片 | 免费大片在线观看www | 超碰97在线资源站 | 亚洲女同女同女同女同女同69 | 日韩精品播放 | 欧美男人亚洲天堂 | 国产激情一区 | 亚洲色图网站 | 亚洲精品午夜国产va久久成人 | 成人一区av| 亚洲国产成人91精品 | 亚洲国产精品一区二区尤物区 | 国产亚洲天堂网 | 午夜激情成人 | 成人黄色动漫在线观看 | 亚洲av久久久噜噜噜熟女软件 | 黄黄视频在线观看 | 九九九九热 | 色多多入口| 最新国产视频 | 成年人视频网址 | 男人的天堂av网站 | 久久a级片 | 亚洲精品久久久久久久蜜桃 | 天天草夜夜操 | 五月婷婷av | 色久在线 | 一炮成瘾1v1高h | 免费视频黄色 | 天天干天天插天天操 | 一区二区三区精彩视频 | 性www| 天天操天天操天天操天天 | 欧美精品videos | 91精品一区二区三区在线观看 | 亚洲国产97在线精品一区 | 午夜精品一区二区三区三上悠亚 | 色婷婷av777 麻豆传媒网站 | 日韩精品福利视频 | 澳门色网 | 无套在线观看 | 久久爱网 | 日本伦理片在线播放 | 亚洲自拍三区 | 精品国产99久久久久久宅男i | 日本嫩草影院 | 日韩av综合网 | 国产少妇在线 | av999| 美女脱了内裤喂我喝尿视频 | 精品视频一二三 | 亚洲图片欧美激情 | 91欧美在线视频 | 老王66福利网 | 欧美日韩看片 | 亚洲精品国产成人无码 | 免费黄色大片网站 | 中文精品无码中文字幕无码专区 | 91黄色片| 自拍三级| 一区二区日韩国产 | 久久精品久 | 成人免费aaa| 成人免费91 | 成人美女在线 |