資料結構一 順序表

2021-10-21 19:32:37 字數 2234 閱讀 6054

目錄

一、順序表的建立和初始化

二、順序表元素的查詢

三、順序表元素的插入

realloc函式

四、順序表元素的刪除

**練習(自存)

1. 陣列法

typedef structsqlist;

void initlist(sqlist l)

2. 指標法

#define max 100;  //最大儲存量

#define listincrement 10; //增加儲存量個數

typedef structsqlist;

sqlist initlist(sqlist l)

注意:

malloc函式 :(int *)表示強制型別轉化為所需的指標型別 ;

malloc括號內:所需要的空間大小,listsize為空間個數,sizeof(int)為乙個int型別所需的空間大小,相乘即為順序表開闢的空間大小;

1.(快速查詢)思路:將需要查詢的元素放在順序表下標零號位置上,然後從右往左找,若找到,返回下標值,找不到,返回0;省去了判斷i是否在【0,l.length】範圍內的時間 

int locate(sqlist l,int e)
2. 原方法(雙重判斷,浪費時間)

int locate (sqlist l,int e)

return -1; //找不到返回-1

}

1.陣列 

void insert(sqlist l,int i,int e)

l.elem[i]=e;

l.length++;

}

2. 指標

語法

原型:extern void *realloc(void mem_address, unsigned int newsize);

指標名=(資料型別)realloc(要改變記憶體大小的指標名,新的大小)

void insert(sqlist l, int i, int e)

*q=e;

l.length++;

}

1. 陣列(錯誤)

void dele(sqlist l,int i)
2.指標(有錯誤)

void dele(sqlist l,int i)

l.length--; //length長度不變

}

#include #include#includeusing namespace std;

#define max 100 //最大儲存量

#define listincrement 10 //增加儲存量個數

typedef structsqlist;

sqlist initlist(sqlist l)

/*typedef structsqlist;

void initlist(sqlist l)

int locate(sqlist l,int e)

int locate (sqlist l,int e)

return -1; //找不到返回-1}*/

/*void insert(sqlist l,int i,int e)

l.elem[i]=e;

l.length++;

}*/void insert(sqlist l, int i, int e)

*q=e;

l.length++;

}int main()

insert(l,3,66);

for(i=1;i<=n;i++)

printf("%d ",l.elem[i]);

return 0;

}

1 2 66 4 5 6 7 8 9 10

process returned 0 (0x0)   execution time : 0.010 s

press any key to continue.

資料結構 順序表

順序表的特徵 1由唯一的表名標識 2佔據一塊連續的儲存空間 3資料順序存放,元素之間有先後關係 定義動態的順序表 define maxsize 100 typedef struct sqlist 這個結構體型別存放的是順序表的資訊和順序表的資料 初始化順序表 void initsqlist sqli...

資料結構 順序表

順序表示最簡單的乙個資料結構,直接貼 吧,因為比較簡單。include include typedef struct sqlist sqlist void initlist sqlist l l length 0 void getelem sqlist l 初始化 l length j printf...

資料結構順序表

include include include include include include include include include include include include include include using namespace std define maxn 100000...