順序表簡單實現(xiàn)

考研數(shù)據(jù)結(jié)構(gòu)得用c或c++寫,寫java的我終于還是被拉回來開始艱難而又咸魚的c++學(xué)習(xí),寫的可能不是很好,湊合看看吧

#include<exception>
#include<fstream>
#include<memory>
#include<cstdlib>

#include<iostream>
using namespace std;
#define MaxSize 100
typedef struct{
  int *data;  // 存儲空間的基地址
  int length;  // 數(shù)組的最大容量和當(dāng)前個數(shù)
}SqList;

void InitList(SqList &L){
  L.data = new int[MaxSize];   // 為順序表分配一個大小為MaxSize的數(shù)組空間
  if(!L.data) exit(0);   // 存儲失敗失敗退出
  L.length = 0;
}

// 在線性表中插入一組數(shù)據(jù)
bool ListInsert(SqList & L,int i, int e){
 if(i < 1 || i > L.length+1) return false;   // 判斷i的范圍是否有效
 if(L.length >= MaxSize) return false;     // 當(dāng)前存儲空間已滿
 for(int j = L.length; j > i-1; j--){      // 將第i個元素及之后的元素后移
  L.data[j] = L.data[j-1];
 }
 L.data[i-1] = e;                          // 在位置i處放入e
 L.length++;                               // 線性表長度加1
 return true;
}

// 刪除操作
bool Delete(SqList & L,int i,int & e){
  if(i < 1 || i > L.length) return false;
  e = L.data[i-1];
  for(int j = i; j < L.length; j++){
      L.data[i-1] = L.data[i];
  }
  L.length--;
  return true;
}

// 按值查找
int Locate(SqList l,int e){
for(int i = 0; i < l.length; i++){
  if(l.data[i] == e) return i+1;
}
return 0;
}


int main(){
//  SqList* l = new SqList();   // 創(chuàng)造一個指針,只要用到new 都是指針 包括java
SqList l = SqList();    // 創(chuàng)造一個實例
InitList(l);
return 0;
}

注:

  1. 若函數(shù)形參中用的是引用(SqList & L),則傳入一個實例就行,會自動進(jìn)行類型轉(zhuǎn)換,如:SqList l = SqList();
    若函數(shù)形參中用的是指針(SqList * L),則需要傳入一個指針,如:SqList* l = new SqList();
    2.若函數(shù)形參中用的是引用或?qū)嵗瑒t調(diào)用東西用L.data;若函數(shù)形參中用的是指針,則調(diào)用相關(guān)內(nèi)容用L->data
    3.所謂一維數(shù)組“動態(tài)分配”就是在結(jié)構(gòu)體中用指針指示數(shù)組首地址
    typedef struct{
    int *data; // 存儲空間的基地址
    int length; // 數(shù)組的最大容量和當(dāng)前個數(shù)
    }SqList;
    然后動態(tài)分配開辟空間
    L.data = new int[Size]; // 為順序表分配一個大小為Size的數(shù)組空間
    即此時size設(shè)為何值看心情,程序會在運行時給數(shù)組開辟空間
    4.一維數(shù)組“靜態(tài)分配”為
    typedef struct{
    int data[100]; // 數(shù)組大小固定,無法改變
    int length; // 數(shù)組的最大容量和當(dāng)前個數(shù)
    }SqList;
    數(shù)組大小已經(jīng)固定為100,無法改變
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,256評論 0 38
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,681評論 1 51
  • 今天是中醫(yī)整合催眠高級課程第三天,在群山環(huán)抱、生機(jī)盎然的大山深處,沒有汽車轟隆的喧囂聲,沒有鬧市的叫賣聲...
    元柳青閱讀 1,372評論 1 3
  • 為什么你一個人在角落旁 怎么顯得那么悲傷 人來人往 別人卻比你顯得更彷徨 你曾那么猖狂 有誰和你兩眼相望 人們匆匆...
    一缸紅酒閱讀 185評論 0 0
  • 汝之夢,是吃盡天下美食,或是游盡宇宙無極?汝理想之職業(yè),為醫(yī)生、企業(yè)家、然是頂天立地之英雄?如是,吾不能不...
    火過留痕閱讀 275評論 2 4

友情鏈接更多精彩內(nèi)容