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個元素,其值通過引數將其返回。建立兩個按值遞增有序的單鏈表 將他們合併成乙個按值遞減有序的單鏈表。要求利用原來的儲存空間 這是我資料結構老師留下的實...