線性表順序存儲結構的基本操作的實現
阿新 • • 發佈:2018-10-07
spa 基本操作 clu include 移動 麻煩 線性表 del ++
線性表順序存儲結構的優點
易於隨機存取任意一個元素
線性表順序存儲結構的缺點
插入和刪除需要移動大量的元素,很麻煩
代碼實現
#include<bits/stdc++.h> using namespace std; #define Maxn 1000 typedef struct{//順序存儲結構的定義 int date[Maxn]; int len; }Sqlist; void InitSqlist(Sqlist &sq){//初始化線性表 sq.len=0; } int GetLength(Sqlist sq){//獲得線性表長度 return sq.len; } int GetElem(Sqlist sq,int i){//獲得第i個位置的元素 if(i<1||i>sq.len) return 0;//無效的位置 else return sq.date[i-1]; } int Locat(Sqlist sq,int x){//找出x在線性表的位置 int i=0; while(sq.date[i]!=x) { i++; if(i>=sq.len) return 0; } return i+1; } int InsElem(Sqlist &sq,int x,int i){//在第i個元素前插入元素 int j; if(i<1||i>sq.len+1) return 0; for(j=sq.len;j>=i;j--) sq.date[j]=sq.date[j-1]; sq.date[i-1]=x; sq.len+=1; return 1; } int DeleElem(Sqlist &sq,int i){//刪除第i個元素 if(i<1||i>sq.len) return 0; for(int j=i;j<sq.len;j++) sq.date[j-1]=sq.date[j]; sq.len--; return 1; } void DisElem(Sqlist sq){//輸出線性表的內容 int i; for(i=0;i<sq.len;i++) cout<<sq.date[i]<<‘ ‘; cout<<endl; } int main(){ int n,i,x; cin>>n; Sqlist a; InitSqlist(a); for(i=1;i<=n;i++) { cin>>x; InsElem(a,x,i); } cout<<GetLength(a)<<endl; DisElem(a); cin>>x; cout<<Locat(a,x)<<endl; cin>>i; DeleElem(a,i); DisElem(a); cin>>i; cout<<GetElem(a,i)<<endl; return 0; }
線性表順序存儲結構的基本操作的實現