1、本節學習要點:
.2、基本定義:
3、基本運算:
#includetypedef int datatype;//結點的資料型別,假設為int
const int maxsize=100;//最大表長度,假設為100
typedef struct sqlist; //順序表型別
//將x插入到順序表l的第i個位置上
int insert(sqlist *l,datatype x,int i)
if(i<1 || i>l->n+1)
for(j=l->n;j>=i;j--)
l->data[j]=l->data[j-1]; //結點後移
l->data[i-1]=x; //插入x,第i個結點的陣列下標是i-1
l->n++; //修改表長
return 1; //插入成功
}//從順序表中刪除第i個位置上的結點
int deletes(sqlist *l,int i)
if(i<1 || i>l->n)
for(j=i+1;j<=l->n;j++)
l->data[j-2]=l->data[j-1]; //結點前移
l->n--; //修改表長
return 1; //刪除成功
}//從順序表中定位資料
int locate(sqlist *l,datatype x)
//輸出順序表
void print(sqlist *l)
cout
//順序表中的字元初始化
for(int i=0;i<10;i++)
cout<4、經典案例:a與b的並集:
#includetypedef int datatype; //線性表結點的資料型別
const int maxsize=100; //線性表可能的最大長度,假設為100
//每個線性表都是乙個struct型別的結點(宣告為sqlist型別),這個struct型別結構如下:
struct sqlist;
//定位操作
int locate(sqlist *l,datatype x)
//求集合交集
void intersection(sqlist *a,sqlist *b)
a->n=a->n-s;
}//輸出順序表
void print1(sqlist *l)
cout<>n1;
sq1->n=n1;
coutdata[i];
}cout
sq2->n=n2;
coutdata[i];
}intersection(sq1,sq2);
print1(sq1);
return 0;
}
資料結構之線性表小結
以下都是用自己的話來總結的,可能和專業術語有偏差 大鳥勿噴 留給自己複習使用啦 一 資料結構 其實就是在你編寫乙個程式之前,你所用到的資料想用怎樣方式存起來 固定長度的靜態儲存 順序儲存,一般用陣列 變長的動態儲存 鏈式儲存,一般用指標 除此之外,資料之間也會有一定的聯絡,方便互相找到彼此 邏輯結構...
資料結構之線性表小結
線性表小結 線性表的定義 零個或多個資料元素的有限序列 兩個特性 有限,序列 同時要求資料的型別相同 線性表的儲存結構 順序儲存,鏈式儲存 順序儲存結構 定義 指的是用一段連續的儲存單元依次儲存線性表的資料元素。實現方式 用一維陣列來實現順序儲存結構,即把第乙個元素存放到陣列下標為0的位置中,接著把...
mysql 線性表 資料結構之線性表
概要 參考 大話資料結構 把常用的基本資料結構梳理一下。線性表定義 線性表 list 零個或多個資料元素的有限序列。若將線性表記為 a 1,cdots,a a i,a cdots,a n 則表中 a 領先於 a i a i 領先於 a 稱 a 是 a i 的直接前驅元素,a 是 a i 的直接後繼元...