C C 線性表順序儲存

2021-08-16 22:34:13 字數 1750 閱讀 4254

大二下學期,終於開始學資料結構了。

對c和c++的知識掌握爛的一塌糊塗,但從線性表開始慢慢實現吧,這也是對c語言的熟悉與掌握

//

//使用前需要在d盤根目錄建立data與data1為名的文件,輸入整形資料,以空格隔開;開始的選擇2「輸入陣列」只支援五個資料元素輸入。

//具體實現了線性表的初始化,元素位置返回,元素插入、刪除與線性表合併。

#include "stdafx.h"

#include#include#define error -1;

#define ok 1;

#define true 1;

#define false -1;

using namespace std;

const int maxsize = 100;//陣列最大長度

typedef int status;

typedef int elemtype;

typedef struct

sqlist;

//線性表初始化

void init(sqlist *&l)

cout << "請輸入您想要的線性表長度:";

cin >> n;

while (infile >> iarrylength)

if (i + 1 > n)

}if (i <= maxsize)

else

}else if (checknum == 2) //2:輸入陣列元素

for (int ai = 0; ai < l->length; ai++)

else

else

l->data[i-1] = e;

l->length++;

return ok; }}

//線性表刪除元素

status deletelist(sqlist *&l, int i, elemtype e)

else if (i<1 || i>l->length)

else

l->length--;

return ok; }}

//線性表合併

void mergelist(sqlist *&l, sqlist *&lb, sqlist *&lc)

cout << "請輸入您想要的線性表b的長度:";

cin >> n;

while (infile1 >> iarrylength)

if (i + 1 > n)

}if (i <= maxsize) }

else

cout << endl;

//實現ab表合併

int nummemo1 = 0, nummemo2 = 0;//計數器

int o = 0;//lc表計數器

while (nummemo1 < l->length&&nummemo2 < lb->length)

else

}lc->length = l->length + lb->length;

cout << "合併線性表lc為:";

for (int j = 0; j < lc->length - 2; j++)

cout << endl;

}//列印線性表

void showlist(sqlist *&l)

cout << endl;

}//main入口

int _tmain(int argc, _tchar* argv)

線性表順序儲存的C C 實現

線性表順序儲存 線性表可以按順序以及鏈式兩種方式儲存,順序儲存主要靠c語言陣列實現,而鏈式儲存主要用到鍊錶。下面是線性表順序結構的基本操作及 實現。表的輸入比較簡單,陣列遍歷輸入輸出即可,不多解釋。void input sqlist a 輸入表 void print sqlist a 輸出表 直接訪...

線性表順序儲存

線性表順序儲存結構的建立 插入結點 刪除結點 就地逆置。include stdio.h include malloc.h typedef struct slist,list void init list 線性表初始化 void insert list s,int p 線性表插入 void delet...

線性表順序儲存

時間複雜度效率 o 1 o logn o n o nlogn o n 2 o n 3 o 2 n o n o n n 線性表順序儲存 線性表 順序儲存 include include define maxsize 1024 typedef int elementtype typedef struct...