1. 程式人生 > 其它 >資料結構-程式碼(自用)

資料結構-程式碼(自用)

動態分配順序表:

#include <iostream>

using namespace std;

#define InitSize 10
#define ElemType int

typedef struct
{
    ElemType *data;
    int MaxSize;    //表示當前最大長度
    int length;     //表示當前字串長度
} SeqList;


void InitList(SeqList &L)
{
    L.data=(ElemType *)malloc(sizeof(ElemType)*InitSize);
    L.length
=0; L.MaxSize=InitSize; } int Length(SeqList &L) { return L.length; } int LocateElem(SeqList L,ElemType e) { for(int i=0; i<L.length; i++) { if(e==L.data[i]) { return i; } } return -1; } ElemType getElem(SeqList L,int i) { return
L.data[i-1]; } bool listInsert(SeqList &L,int i,ElemType e) { if(i<1||i>L.length+1||i>L.MaxSize) { return false; } //ElemType *p=L.data; for(int k=L.length; k>=i; k--) { L.data[k]=L.data[k-1]; } L.data[i-1]=e; L.length++; return
true; } void IncreaseSize(SeqList &L,int len) { int *p=L.data; L.data=(ElemType *)malloc(sizeof(ElemType)*(L.MaxSize+len)); for(int i=0; i<L.MaxSize; i++) { L.data[i]=p[i]; } L.MaxSize=L.MaxSize+len; free(p); } bool Empty(SeqList L) { if(L.length==0) { return true; } else { return false; } } void PrintList(SeqList L) { for(int i=0; i<L.length; i++) cout<<L.data[i]<<endl; } void DestoryList(SeqList &L){ free(L.data); } int main() { SeqList L; InitList(L); IncreaseSize(L,5); listInsert(L,1,35); PrintList(L); return 0; }