大二下學期,終於開始學資料結構了。
對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...