考研數(shù)據(jù)結(jié)構(gòu)得用c或c++寫(xiě)救赐,寫(xiě)java的我終于還是被拉回來(lái)開(kāi)始艱難而又咸魚(yú)的c++學(xué)習(xí),寫(xiě)的可能不是很好殴俱,湊合看看吧
#include<exception>
#include<fstream>
#include<memory>
#include<cstdlib>
#include<iostream>
using namespace std;
#define MaxSize 100
typedef struct{
int *data; // 存儲(chǔ)空間的基地址
int length; // 數(shù)組的最大容量和當(dāng)前個(gè)數(shù)
}SqList;
void InitList(SqList &L){
L.data = new int[MaxSize]; // 為順序表分配一個(gè)大小為MaxSize的數(shù)組空間
if(!L.data) exit(0); // 存儲(chǔ)失敗失敗退出
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)前存儲(chǔ)空間已滿
for(int j = L.length; j > i-1; j--){ // 將第i個(gè)元素及之后的元素后移
L.data[j] = L.data[j-1];
}
L.data[i-1] = e; // 在位置i處放入e
L.length++; // 線性表長(zhǎng)度加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)造一個(gè)指針驶冒,只要用到new 都是指針 包括java
SqList l = SqList(); // 創(chuàng)造一個(gè)實(shí)例
InitList(l);
return 0;
}
注:
- 若函數(shù)形參中用的是引用(SqList & L),則傳入一個(gè)實(shí)例就行殊轴,會(huì)自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換嚎杨,如:SqList l = SqList();
若函數(shù)形參中用的是指針(SqList * L),則需要傳入一個(gè)指針蓄喇,如:SqList* l = new SqList();
2.若函數(shù)形參中用的是引用或?qū)嵗⑶郑瑒t調(diào)用東西用L.data;若函數(shù)形參中用的是指針妆偏,則調(diào)用相關(guān)內(nèi)容用L->data
3.所謂一維數(shù)組“動(dòng)態(tài)分配”就是在結(jié)構(gòu)體中用指針指示數(shù)組首地址
typedef struct{
int *data; // 存儲(chǔ)空間的基地址
int length; // 數(shù)組的最大容量和當(dāng)前個(gè)數(shù)
}SqList;
然后動(dòng)態(tài)分配開(kāi)辟空間
L.data = new int[Size]; // 為順序表分配一個(gè)大小為Size的數(shù)組空間
即此時(shí)size設(shè)為何值看心情刃鳄,程序會(huì)在運(yùn)行時(shí)給數(shù)組開(kāi)辟空間
4.一維數(shù)組“靜態(tài)分配”為
typedef struct{
int data[100]; // 數(shù)組大小固定,無(wú)法改變
int length; // 數(shù)組的最大容量和當(dāng)前個(gè)數(shù)
}SqList;
數(shù)組大小已經(jīng)固定為100钱骂,無(wú)法改變