資料結構實驗之鍊表七 單鏈表中重複元素的刪除

2021-10-08 09:56:19 字數 1306 閱讀 9699

description

按照資料輸入的相反順序(逆位序)建立乙個單鏈表,並將單鏈表中重複的元素刪除(值相同的元素只保留最後輸入的乙個)。

input

第一行輸入元素個數 n (1 <= n <= 15);

第二行輸入 n 個整數,保證在 int 範圍內。

output

第一行輸出初始鍊錶元素個數;

第二行輸出按照逆位序所建立的初始鍊錶;

第三行輸出刪除重複元素後的單鏈表元素個數;

第四行輸出刪除重複元素後的單鏈表。

sample

input

1021 30 14 55 32 63 11 30 55 30

output

1030 55 30 11 63 32 55 14 30 21

730 55 11 63 32 14 21

#include

#include

struct node

;int

main()

p=head->next;

printf

("%d\n"

,n);

while

(p)else

p=p->next;

}//在此之上為逆序建立鍊錶並輸出

q=(struct node *

)malloc

(sizeof

(struct node));

w=(struct node *

)malloc

(sizeof

(struct node));

p=head->next;

/*注意這裡讓結點p再次從head後面開始,

因為上面的輸出讓p遍歷了整個資料,

使得p到達了整個資料最後面*/

while

(p)else

} p=p->next;

} p=head->next;

//p遍歷完,從頭開始輸出

printf

("%d\n"

,n);

while

(p)else

p=p->next;

}return0;

}

此**分為兩部分,首先是逆序建立鍊錶並輸出,再是刪除相同元素

q=p;

w=p->next;

刪除元素**,需要理解結點 q,w,p的作用,q是銜接w前後結點, p->data;是開始的需要被計較的元素,(比如第一次是第乙個結點,第二次是第二個結點),w則為比較大的當前的結點。

資料結構 鍊錶之單鏈表

單鏈錶即每個節點都存在資料域和指標域 特殊節點除外 每個節點都乙個直接前驅節點和直接後繼節點 頭節點無前驅,尾節點無後繼 簡單來說就是上乙個節點的指標域中存放了下乙個節點的位址,因此可以實現層層節點依次查詢,時間複雜度為o n 這也就是相對順序表而言的缺點,但是對於頻繁的插入和刪除節點卻是相對於順序...

資料結構實驗之鍊表七 單鏈表中重複元素的刪除

time limit 1000ms memory limit 65536k 按照資料輸入的相反順序 逆位序 建立乙個單鏈表,並將單鏈表中重複的元素刪除 值相同的元素只保留最後輸入的乙個 第一行輸入元素個數n 第二行輸入n個整數。第一行輸出初始鍊錶元素個數 第二行輸出按照逆位序所建立的初始鍊錶 第三行...

資料結構實驗之鍊表七 單鏈表中重複元素的刪除

資料結構實驗之鍊表七 單鏈表中重複元素的刪除 time limit 1000ms memory limit 65536k 按照資料輸入的相反順序 逆位序 建立乙個單鏈表,並將單鏈表中重複的元素刪除 值相同的元素只保留最後輸入的乙個 第一行輸入元素個數n 第二行輸入n個整數。第一行輸出初始鍊錶元素個數...