データ構造上のテスト2-2:シングルチェーンテーブル操作B SDUT-1139
1581 ワード
データ構造上のテスト2-2:シングルチェーンテーブルの操作B
Time Limit: 1000 ms メモリLimit: 65536 KiB
Submit Sttistic ディスク
Problem Description
データ入力の逆順序(逆ビット順)に従って、単一チェーンテーブルを作成し、単一チェーンテーブルに重複する要素を削除します.
Input
最初の行に要素の個数nを入力します.2行目はn個の整数を入力します.
Output
最初の行は初期のチェーン要素の個数を出力します.2行目の出力は逆ビット順に作成された初期チェーン表です.第三行出力は重複要素を削除した後の単一チェーン表の要素の個数を削除します.4行目の出力は重複した要素を削除した後のシングルチェーン表を出力します.
Sample Input
ソurce
ヽoo.ツ
struct node{ struct node*next; int data;^*head、*tail、**p、**q;struct node*creat(int n){ int i; struct node*head、*p; head=(struct node*)malloc;head->next=NULL; for(i=0;i<n;i++) { p=(struct node*)malloc; scanf("%d"、&p->data); p->next=head->next;head->next=p } return head;;void show(struct node*head){ struct node*t; t=head->next; while(t) { if(t->next!=NULL)printf("%d",t->data); else printf("%d",t->data); t=t->next; } } int main(){ int n; scanf("%d"、&n);head=creat(n); printf(“%d”,n);show(head); p=head->next; while(p!=NULL) { tail=p;q=p->next; while(q!=NULL) { if(q->data==p->data) { tail->next=q->next;q=tail->next;n-- } tail=tail->next;q=q->next; } p=p->next; } printf(“%d”,n);show(head); return 0;
Time Limit: 1000 ms メモリLimit: 65536 KiB
Submit Sttistic ディスク
Problem Description
データ入力の逆順序(逆ビット順)に従って、単一チェーンテーブルを作成し、単一チェーンテーブルに重複する要素を削除します.
Input
最初の行に要素の個数nを入力します.2行目はn個の整数を入力します.
Output
最初の行は初期のチェーン要素の個数を出力します.2行目の出力は逆ビット順に作成された初期チェーン表です.第三行出力は重複要素を削除した後の単一チェーン表の要素の個数を削除します.4行目の出力は重複した要素を削除した後のシングルチェーン表を出力します.
Sample Input
10
21 30 14 55 32 63 11 30 55 30
Sample Output10
30 55 30 11 63 32 55 14 30 21
7
30 55 11 63 32 14 21
ベントソurce
ヽoo.ツ
struct node{ struct node*next; int data;^*head、*tail、**p、**q;struct node*creat(int n){ int i; struct node*head、*p; head=(struct node*)malloc;head->next=NULL; for(i=0;i<n;i++) { p=(struct node*)malloc; scanf("%d"、&p->data); p->next=head->next;head->next=p } return head;;void show(struct node*head){ struct node*t; t=head->next; while(t) { if(t->next!=NULL)printf("%d",t->data); else printf("%d",t->data); t=t->next; } } int main(){ int n; scanf("%d"、&n);head=creat(n); printf(“%d”,n);show(head); p=head->next; while(p!=NULL) { tail=p;q=p->next; while(q!=NULL) { if(q->data==p->data) { tail->next=q->next;q=tail->next;n-- } tail=tail->next;q=q->next; } p=p->next; } printf(“%d”,n);show(head); return 0;