/*
題目源自王道資料結構
如果找到要查詢的元素,將要查詢的元素前移一位
在順序表和單鏈表中實現
說明:在順序表中,通過折半查詢進行查詢,找到待查詢元素之後交換位置
在單鏈表中,通過兩種方法進行交換,一種是結點不變,交換結點的值,函式類似於順序表;另一種是交換結點
問題:使用鏈式結構的順序結構,在初始化的時候如果錄入的元素超出了初始的空間,應該怎樣擴大空間並繼續儲存錄入
*/#include
#include
using
namespace std;
const
int initsize =
100;
typedef
int elemtype;
struct sqlist
;typedef
struct lnode
*linklist;
//初始化順序表
void
initlist1
(sqlist &l)
l.length = i;
}//初始化單鏈表(尾插法-保持錄入元素和儲存結點的位置一致)
void
initlist1
(linklist &l)
r->next =
null;}
//順序表處理:非遞迴折半查詢並移動查詢到的元素位置
intbinarysort
(sqlist &l, elemtype e,
int low,
int high)
else
if(l.elem[mid]
//右半邊
low = mid+1;
else
//左半邊
high = mid-1;
}return-1
;}//單鏈表處理:順序查詢 並 交換結點位置 。
intlinksort
(linklist &l, elemtype e)
else
}return-1
;//沒找到
}//列印順序表元素
void
printlist
(sqlist l)
//列印單鏈表元素
void
printlist1
(linklist l)
cout << endl;
}int
main()
else
//單鏈表操作
cout <<
"輸入表元素:"
;initlist1
(l);
cout <<
"輸入要查詢的元素:"
; cin >> x;
cout <<
"初始狀態的表:"
;printlist1
(l);if(
linksort
(l, x)!=-
1)else
return0;
}
程式小白,如果**中有任何問題,歡迎指出。 線性表查詢
查詢的基本概念 廣義地講 查詢是在具有相同型別的記錄構成的集合中找出滿足給定條件的記錄。給定的查詢條件可能是多種多樣的,為了便於討論,我們把查詢條件限制為 匹配 即在查詢關鍵碼等於給定值的記錄。順序查詢 順序查詢又稱線性查詢,是最基本的查詢技術之一,其基本思想為 從線性表的一端向另外一端逐個將關鍵碼...
查詢 線性表的查詢
標頭檔案 sqlistsearch.h include const int maxsize 100 順序表中最多元素個數 template struct rectype 順序表記錄型別 template struct idxtype 索引表型別 template class sqlistsearch...
線性表的交換排序
基於交換排序演算法有兩種 氣泡排序和快速排序 示例陣列 int keys new int 比較相鄰兩個元素,大的往後排。最簡單的乙個排序方法了。public static void bubblesort int a 以上面的示例陣列32,26,87,72,26,17為例,我們發現,當我們第一次 把8...