Apriori算法的C/C#实现(二)

2014-11-24 10:45:17 · 作者: · 浏览: 1
case 1://构造项目集

103 103 {

104 104 int it;

105 105 char ItemValue;

106 106 system("cls");

107 107 printf_s("构造项目集\n");

108 108 printf_s("请输入项目个数:\n");//项目个数

109 109 scanf_s("%d",&ItemNum);

110 110 for (it=1;it<=ItemNum;it++)//依次输入每个项目集

111 111 {

112 112 fflush(stdin);

113 113 printf_s("\n请输入第%d个项目的字母(a,b,c,d,e,f,……):\n",it);

114 114 scanf("%c",&ItemValue);

115 115 listInsertSq(L,it,ItemValue);

116 116 }

117 117 printf_s("\n初始化后,项目集各元素值:\n");

118 118 for (int i=0;i

119 119 {

120 120 printf_s("%c\n",L.item[i]);

121 121 }

122 122 _getch();

123 123 break;

124 124 }

125 125 case 2:

126 126 {

127 127 system("cls");

128 128 //事务的数据结构,动态数组

129 129 int i,j;

130 130 char tranvalue;

131 131 printf_s("请输入要添加的事务个数:\n");//事务个数

132 132 scanf_s("%d",&sn);

133 133 for (i=1;i<=sn;i++)//依次输入每个事务所包含的项目,i应当从0开始

134 134 {

135 135 printf_s("请输入第%d个事务包含的项目数:",i);

136 136 scanf_s("%d",&trannum[i]);

137 137 fflush(stdin);

138 138 for (j=1;j<=trannum[i];j++)

139 139 {

140 140 fflush(stdin);

141 141 printf_s("输入事务的第%d个项目:\n",j);

142 142 scanf_s("%c",&tranvalue);

143 143 //动态分配内存,插入事务数组集合

144 144 listInsertSq(TranL.r[i],j,tranvalue);

145 145 }

146 146 }

147 147 printf_s("\n各事务的项目如下:\n");

148 148 for (i=1;i<=sn;i++)

149 149 {

150 150 printf_s("\n第%d个事务\n",i);

151 151 for (j=0;j<=trannum[i];j++)

152 152 {

153 153 printf_s("%c",TranL.r[i].item[j]);

154 154 }

155 155 }

156 156 _getch();

157 157 break;

158 158 }

159 159 case 3://设定最小支持度与最小置信度

160 160 {

161 161 system("cls");

162 162 printf_s("请输入最小支持度与最小置信度(空格隔开):");

163 163 fflush(stdin);//最好在每个scanf前加上fflush( stdin );

164 164 scanf_s("%f%f",&minSupport,&minConfidence);

165 165 printf_s("\n最小支持度为:%2.2f\n",minSupport);

166 166 printf_s("最小置信度为:%2.2f\n",minConfidence);

167 167 _getch();

168 168 break;

169 169 }

170 170 case 4://Apriori算法

171 171 {

172 172 InitListSq(L1);

173 173 char generatedCandidate[10];

174 174 int c[20]={0};

175 175 int f[20]={0};

176 176 int jj=1;

177 177 //得到C1,算法第一行

178 178