資料結構 turbo 單鏈表操作

2021-10-24 13:46:25 字數 2901 閱讀 8138

8 查詢序列元素(鍊錶)

問題描述 :

使用帶頭結點的單鏈表程式設計:

一群學生排成一行,輸入乙個學號,請確定該學號學生所在的位置。

輸入說明 :

第一行輸入學生資訊:

第乙個整數n(0<=n<=100),表示共有n個學生,其後有n個整數,表示n個學生的學號

第二行及以後各行,每行輸入乙個整數,表示要查詢的學生學號。

輸出說明 :

對於每個要查詢的學號,輸出乙個整數,表示要查詢學生的位置。如果共有n個學生,則位置序號為1~n。

如果學生不存在,輸出「no」,不包括雙引號。

每個輸出佔一行。

// lnode.cpp : 此檔案包含 "main" 函式。程式執行將在此處開始並結束。

//#include

using

namespace std;

class

lnode

;class

linklist

;int

main()

inline linklist::

linklist()

linklist::

linklist

(int llen)

now-

>next =

null;}

inline linklist::

~linklist()

delete head;

//delete:作用物件是指標,釋放指標指向的空間

len =0;

}void linklist::

pri_all()

lnode* now = head;

//頭節點

cout <<

"head-->"

;while

(now-

>next !=

null

) cout <<

"tail"

<< endl;

/*存在問題,鍊錶中沒有儲存資料,此時now就是null,而now->next已經越界

while (now->next != null)

cout << now->data << "-->tail" << endl;*/

}int linklist::

search

(int stu_num)

position++

;//now->data == stu_num時,跳出迴圈,少了一次position++

if(now !=

null

)else

}bool linklist::

insert

(int position,

int stu_num)

int p_now =0;

lnode* now = head;

while

(p_now != position -1)

lnode* temp =

new lnode;

temp-

>data = stu_num;

temp-

>next = now-

>next;

now-

>next = temp;

len++

;return

true;}

bool linklist::

del(

int position)

//從頭節點開始處理,就不需要單獨考慮鏈頭,鏈尾的

lnode* now = head;

for(

int i =

1; i <= position -

1; i++

) lnode* temp = now-

>next;

now-

>next = now-

>next-

>next;

delete temp;

len--

;return ture;

/* lnode* now=head;

int p_now = 0;

//p_now!=position,是對當下的判斷,而now->next!=null,是對下一步是否能進行的判斷

while(p_now!=position-1 && now->next!=null)

//排除了position=1但len=0(此時p_now!=position第一次就判斷失敗,跳過迴圈,但是len=0意味delete操作時無效的)和positio越界的問題

if(now->next==null)

return false;

lnode* temp = now->next;

now->next = now->next->next;

delete temp;

len--;

return ture;*/

}bool linklist::

intersection

(linklist b, linklist& result)

now_b = now_b-

>next;

} now_a = now_a-

>next;}if

(result.len ==0)

else

}bool linklist::

intersection_order

(linklist b, linklist& result)

else

break;}

now_b = now_b-

>next;

} now_a = now_a-

>next;}if

(result.len ==0)

else

}

C資料結構 單鏈表操作

單鏈表的一些操作函式 參考自 程杰 大話資料結構 巨集定義 define ok 1 define error 0 typedef int elemtype typedef int status 結構體 線性單鏈表儲存結構 typedef struct node node typedef struct...

資料結構之單鏈表操作

編寫乙個程式,實現單鏈表的各種基本運算 假設單鏈表的元素型別為char 1 初始化單鏈表h 2 採用尾插法依次插入元素a,b,c,d,e 3 輸出單鏈表h 4 輸出單鏈表h長度 5 判斷單鏈表h是否為空 6 輸出單鏈表h的第3個元素 7 輸出元素a的位置 8 在第4個元素位置上插入元素f 9 輸出單...

資料結構 單鏈表的操作

單鏈表的操作 輸入一組整型元素序列,使用尾插法建立乙個帶有頭結點的單鏈表。實現該線性表的遍歷。在該單鏈表的第i個元素前插入乙個整數。刪除該單鏈表中的第i個元素,其值通過引數將其返回。建立兩個按值遞增有序的單鏈表 將他們合併成乙個按值遞減有序的單鏈表。要求利用原來的儲存空間 這是我資料結構老師留下的實...