นี่คือโปรแกรม C++ สำหรับหา Mode (ฐานนิยม) ในชุดข้อมูล
อัลกอริทึม
เริ่มต้น ฟังก์ชัน insertinset() เพื่อแทรกข้อมูลในเซต สร้าง newnode และ temp(t) โหนด โหนดที่จะแทรกในลิสต์โดยใช้ newnode ถ้า head เป็น null แล้ว กำหนดโหนดใหม่ให้ head และเพิ่ม count ระหว่างการแทรก ทำ Insertion Sort เพื่อจัดเรียงข้อมูล ถ้า newnode->data เท่ากับองค์ประกอบใดในเซต แล้วเพิ่ม count เฉยๆ จบ
ตัวอย่างโค้ด
#include <iostream> using namespace std; struct set // โครงสร้าง set สำหรับประกาศตัวแปร { int data; int cnt; set *n; }; set* insertinset(set *head, int n) { set *newnode = new set; //ใช้ตัวแปรของโครงสร้าง set set *t = new set; newnode->data = n; newnode->cnt = 0; newnode->n = NULL; if(head == NULL) { head = newnode; head->cnt++; return head; } else { t = head; if(newnode->data < head->data) { newnode->n = head; head = newnode; newnode->cnt++; return head; } else if(newnode->data == head->data) { head->cnt++; return head; } while(t->n!= NULL) { if(newnode->data == (t->n)->data) { (t->n)->cnt++; return head; } if(newnode->data < (t->n)->data) break; t=t->n; } newnode->n = t->n; t->n = newnode; newnode->cnt++; return head; } } int main() { int n, i, num, max = 0, c; set *head = new set; head = NULL; cout<<"\nEnter the number of data element to be sorted: "; cin>>n; for(i = 0; i < n; i++) { cout<<"Enter element "<<i+1<<": "; cin>>num; head = insertinset(head, num); //เรียกฟังก์ชัน } cout<<"\nSorted Distinct Data "; while(head != NULL) // ถ้า head ไม่เท่ากับ null { if(max < head->cnt) { c = head->data; max = head->cnt; } cout<<"->"<<head->data<<"("<<head->cnt<<")"; //คืนค่าจำนวนนับของข้อมูล head = head->n; } cout<<"\nThe Mode of given data set is "<<c<<" and occurred "<<max<<" times."; return 0; }
ผลลัพธ์
Enter the number of data element to be sorted: 10 Enter element 1: 1 Enter element 2: 2 Enter element 3: 0 Enter element 4: 2 Enter element 5: 3 Enter element 6: 7 Enter element 7: 6 Enter element 8: 2 Enter element 9: 1 Enter element 10: 1 Sorted Distinct Data ->0(1)->1(3)->2(3)->3(1)->6(1)->7(1) The Mode of given data set is 1 and occurred 3 times.