查詢元素(線性表實訓)

2021-10-05 13:51:24 字數 2593 閱讀 9155

相關知識

由於鍊錶結點都是動態記憶體分配得到的,在記憶體中不是連續儲存,沒法使用二分法之類的演算法來實現資訊檢索,但可以使用順序查詢的方法。

順序查詢需要遍歷整個鍊錶,逐個檢查每個結點是否滿足條件。程式中的printlist函式已實現了遍歷功能,可以參照其來實現查詢函式。其中printlist函式的實現**如下:

// 函式printlist:輸出鍊錶,每個資料之間用乙個空格隔開

// 引數:h-煉表頭指標

void

printlist

(node *h)

cout << endl;

// 輸出換行符

}

#include

//#include "linearlist.h"

using

namespace std;

// 定義結點結構

struct node

;// 函式search:在鍊錶中查詢包含資料num的結點

// 引數:h-煉表頭指標,num-要查詢的資料

node *

search

(node * h,

int num)

;// 函式insertsort:鍊錶排序插入

// 引數:h-煉表頭指標,t-指向要插入的結點

node *

insertsort

(node *h, node *t)

;// 函式inserthead:鍊錶頭部插入

// 引數:h-煉表頭指標,t-指向要插入的結點

node *

inserthead

(node *h, node *t)

;// 函式printlist:輸出鍊錶,每個資料之間用乙個空格隔開

// 引數:h-煉表頭指標

void

printlist

(node *h)

;// 函式inserttail:鍊錶尾部插入

// 引數:h-煉表頭指標,t-指向要插入的結點

node *

inserttail

(node *h, node *t)

;// 函式dellist:刪除鍊錶,釋放空間

// 引數:h-煉表頭指標

void

dellist

(node *h)

;int

main()

//輸入要查詢的數

cin>>num;

//在鍊錶中查詢num

node *np =

search

(head,num)

;//輸出從np開始的後半截鍊錶(如果np為null,則輸出空鍊錶)

printlist

(np)

;//刪除結點,釋放空間

dellist

(head)

;return0;

}//函式dellist:刪除鍊錶,釋放空間

//引數:h-煉表頭指標

void

dellist

(node *h)

}//函式printlist:輸出鍊錶,每個資料之間用乙個空格隔開

//引數:h-煉表頭指標

void

printlist

(node *h)

cout

}//函式inserttail:鍊錶尾部插入

//引數:h-煉表頭指標,t-指向要插入的結點

node *

inserttail

(node *h, node *t)

//非空鍊錶的情況

node *p=h;

//讓p指向最後乙個結點

while

(p->next)

p->next = t;

//讓最後乙個結點的指標域指向結點t

t->next=

null

;//鍊錶尾指標置為null

return h;

//返回第乙個結點的位址(即煉表頭指標)

}//函式inserthead:鍊錶頭部插入

//引數:h-煉表頭指標,t-指向要插入的結點

node *

inserthead

(node *h, node *t)

//函式insertsort:鍊錶排序插入

//引數:h-煉表頭指標,t-指向要插入的結點

node *

insertsort

(node *h, node *t)

if(p==

null

)//插入鏈首

if(q==

null

)//插入鏈尾

//插入p、q之間

t->next=q;

p->next=t;

return h;

}node *

search

(node * h,

int num)

h = h-

>next;

// 將該結點的指標域賦值給h,h就指向了下乙個結點

}return

null

;// 沒找到包含num的結點

}

線性表應用一 棧(線性表實訓)

用前面已經實現的線性表來實現乙個整數棧 棧裡的資料是整數 共需要補全三個函式 也是棧的基本功能 判斷棧空的 empty 函式 壓棧的 push 函式和彈棧的 pop 函式。相關知識 定義結點結構 struct node typedef node intstack 定義型別別名,intstack即相當...

實訓單錶查詢

1.customer表 1 查詢所有顧客資訊。2 查詢姓名和聯絡人相同的顧客資訊 3 查詢所在城市是北京的顧客姓名,顧客位址,顧客所在城市,郵編。2.product表 1 查詢所有產品資訊 2 查詢產品名中帶有 小公尺 的商品資訊 3 查詢產品名中以 小 開頭或者產品描述中帶有 玫瑰 的產品資訊 4...

線性表查詢

查詢的基本概念 廣義地講 查詢是在具有相同型別的記錄構成的集合中找出滿足給定條件的記錄。給定的查詢條件可能是多種多樣的,為了便於討論,我們把查詢條件限制為 匹配 即在查詢關鍵碼等於給定值的記錄。順序查詢 順序查詢又稱線性查詢,是最基本的查詢技術之一,其基本思想為 從線性表的一端向另外一端逐個將關鍵碼...