#pragma once //預防標頭檔案被重複引用
//定長順序表
#define size 10
typedef struct seqlist
seqlist,*pseqlist;//44
//然後我們定義將要用到的函式
void initseqlist(pseqlist ps);//初始化順序表
bool insert(pseqlist ps,int pos,int val);//插入
bool deletepos(pseqlist ps,int pos);//刪除位置
int search(pseqlist ps,int key);//查詢值
bool deleteval(pseqlist ps,int key);//刪除值
bool isempty(pseqlist ps);//判斷是否為空
//獲取有效資料個數
int getlength(pseqlist ps);
//銷毀順序表
void destroy(pseqlist ps);
//清空資料
void clear(pseqlist ps);
void show(pseqlist ps);
我們的順序表有存放資料的陣列和長度來組成。
我們暫且在標頭檔案中定義這些,下面我們來寫寫順序表,順序表是線性表中的基礎,所以相對於**來說比較好寫
我們來寫seqlist.cpp
#include
#include
#include"seqlist.h"
void initseqlist(pseqlist ps)
static bool isfull(pseqlist ps)//判斷是否已滿
static bool isempty(pseqlist ps)
bool insert(pseqlist ps,int
pos,int val)
int i = ps->length-1;
for( ;i >= pos;i--)
ps->elem[pos] = val;
ps->length++;//記得插入了要把有效個數+1
return true;
}bool deletepos(pseqlist ps,int
pos)
int i = pos;
for(; i < ps->length;i++)
ps->length--;//這裡位置不見了,有效個數也就少了一位
return true;
}int search(pseqlist ps,int key)
}return -1;
}bool deleteval(pseqlist ps,int key)
int i = search(ps,key);
for(;i < ps->length;i++)
ps->length--;我們把值刪除了,雖然位置還在,但是沒有有效值所以也要記得減1
return true;
}void seqlistinverse(pseqlist ps)
}//這是乙個逆置順序表的操作,跟字串的逆置很相似
int getlength(pseqlist ps)
void clear(pseqlist ps)
void destroy(pseqlist ps)
void show(pseqlist ps)
}
我們最後來測試一下test.cpp
#include
#include
#include"seqlist.h"
int main()
seqlistinverse(&s);
show(&s);
//show(&s);
//clear(&s);
return
0;}
這樣順序表就寫完了,是不是很好理解呢。 資料結構 線性表中的順序表 定長順序表
順序表是在計算機記憶體中以陣列的形式儲存的線性表,線性表的順序儲存是指用一組位址連續的儲存單元依次儲存線性表中的各個元素 使得線性表中在邏輯結構上相鄰的資料元素儲存在相鄰的物理儲存單元中,即通過資料元素物理儲存的相鄰關係來反映資料元素之間邏輯上的相鄰關係,採用順序儲存結構的線性表通常稱為順序表。順序...
資料結構,定長順序表
typedef struct seqlist 定長順序表 seqlist,pseqlist 44 初始化順序表ps void initseqlist pseqlist ps pseqlist seqlist ps length 0 有效資料個數為0 判斷順序表是否為滿 static bool isf...
線性表 定長順序串 十四
串,也就是字串,是由零個字元或多個字元組成的有限序列。記為s a1 a2 a3 an n 0 其中,s是串的名字,用單引號括起來的字串行是串的值,每乙個a都可以是字母,數字或其他字元,n是串中字元的個數,稱為串的長度,n 0時的串成為空串。需要特別指出的是,串值必須使用一對單引號括起來 c語言的串是...