一丶順序表
概念:採用順序儲存的線性表稱為順序表,順序表中邏輯上相鄰的資料元素在物理儲存位置上也是相鄰的。
二丶定義順序表
用一維陣列來描述順序表的資料儲存。由於順序表有插入刪除等操作,即順序表的表長會發生改變。因此是陣列長度足夠大,加入整型變數length來記錄此時線性表中資料元素的個數,順序表的結構如下:
#define maxsize 100
typedef
int elemtype;
typedef
struct
seqlist;
三丶順序表的初始化
順序的初始化即構造乙個空表,將表長length設定為0,表示沒有儲存資料(0號單元不存值)。
seqlist *init_seqlist()
四丶順序表的插入
順序表的插入是指在表的第 i 個位置插入乙個新元素 x,插入後是表長加1。並要注意插入的位置是否正常和此時的表是否已經滿了。
int in_seqlist(seqlist *l,int i,elemtype x)
if(i<1 || i>l->length+1)
for(j=l->length ; j>=i ; j--)
l->elem[j+1] = l->elem[j];
l->elem[i] = x;
l->length++;
return true;
}
五丶順序表的刪除
順序表的刪除是指將表中的第 i 個元素從順序表中刪除,刪除後使表長減1。注意刪除的位置是否正確和此時的表是否為空。
int delete_seqlist(seqlist *l,int i)
for(j=i ; j<=l->length-1;j++)
l->elem[j] = l->elem[j+1];
l->length--;
return true;
}
六丶順序表的查詢
在順序表中查詢給定元素x相同的值,找到返回x在表中的位置,否則返回false;
int search_seqlist(seqlist *l,elemtype x)
七丶兩個順序表合併
兩個順序表a和b,其元素均按從大到小排列,然後將這兩個順序表合併成乙個順序表c,要求c也是按從大到小的順序排列。
void
merge_seqlist(seqlist *a,seqlist *b,seqlist *c)
while(i <= a->length)
c->elem[k++] = a->elem[i++];
while(j <= b->length)
c->elem[k++] = b->elem[j++];
c->length = a->length + b->length;
}
總**
#include
#include
#define true 1
#define false 0
#define maxsize 100
typedef int elemtype;
typedef struct
seqlist;
//順序表的初始化
seqlist *init_seqlist()
//順序表的插入
int in_seqlist(seqlist *l,int i,elemtype x)
if(i<1 || i>l->length+1)
for(j=l->length ; j>=i ; j--)
l->elem[j+1] = l->elem[j];
l->elem[i] = x;
l->length++;
return true;
}//順序表的刪除
int delete_seqlist(seqlist *l,int i)
for(j=i ; j<=l->length-1;j++)
l->elem[j] = l->elem[j+1];
l->length--;
return true;
}//順序表的查詢
int search_seqlist(seqlist *l,elemtype x)
//兩個順序表的合併
void merge_seqlist(seqlist *a,seqlist *b,seqlist *c)
while(i <= a->length)
c->elem[k++] = a->elem[i++];
while(j <= b->length)
c->elem[k++] = b->elem[j++];
c->length = a->length + b->length;
}//輸出順序表中的資料
void show_seqlist(seqlist *l)
printf("\n");
}void print()
//測試函式
void try_seqlist()
printf("按任意鍵繼續……");
getchar();
getchar();
} while (choose != 0);
}int main(void)
線性表的順序儲存 順序表
線性表,簡稱表,是n n 0 個具有相同型別的資料元素的有限序列。1 線性表是乙個相當靈活的資料結構,對線性表的資料元素不僅可以進行訪問訪問,還可以進行插入和刪除等操作。2 a1稱為第1個元素,an稱為最後乙個元素,任意一對相鄰的資料元素a i 1 和a i 1序偶關係 且a i 1 稱為a i 的...
線性表的順序儲存 順序表
線性表可以按照其儲存結構劃分為順序表 鍊錶。如下圖 順序表 順序表的描述 1 陣列靜態分配 define maxsize 30 typedef int elemtype typedef structsqlist 2 陣列動態分配 define maxsize 30 typedef int elemt...
線性表的順序儲存(順序表)
課程名 資料結構 實驗目的 1 掌握線性表的定義 2 掌握線性表的基本操作,如建立 查詢 插入和刪除等。實驗要求 定義乙個包含學生資訊 學號,姓名,成績 的順序表和煉表,使其具有如下功能 1 根據指定學生個數,逐個輸入學生資訊 2 逐個顯示學生表中所有學生的相關資訊 3 根據姓名進行查詢,返回此學生...