Faits: Faits: A. La société anonyme A._ exploite le Centre cantonal de tri des déchets de chantier, à Coffrane, en vertu d'une convention conclue avec l'Etat de Neuchâtel en avril 1993. Le 5 mars 1997, le Conseil d'Etat du canton de Neuchâtel a adopté un arrêté concernant les déchets de chantier, qui rend obligatoire le tri de ces déchets soit sur les chantiers, par bennes multiples, selon les recommandations de la Société suisse des entrepreneurs, soit au centre de tri mécanisé exploité par A._ à Coffrane. Cet arrêté a été abrogé et remplacé par un arrêté du 22 août 2000, entré en vigueur le 1er décembre 2000, qui reprend telle quelle cette obligation et qui autorise A._ à percevoir, auprès des détenteurs de déchets mélangés, une taxe de prise en charge de 125 fr. le mètre cube. Le 19 novembre 2002, A._ a déposé une plainte pénale contre le ou les responsables de la société anonyme B._ pour escroquerie et infractions aux lois cantonales sur la protection de l'environnement et sur le tri des déchets. Elle soupçonnait cette entreprise de ne pas se conformer à l'arrêté du 5 mars 1997 précité, qui imposait le tri des déchets soit sur les chantiers, soit auprès d'elle. Il ressort de l'enquête préalable menée par la police cantonale neuchâteloise que la société B._ aurait entreposé sur divers sites du littoral neuchâtelois de nombreuses bennes de déchets de chantier pour les trier elle-même, au tarif pratiqué par A._ pour l'évacuation et le traitement des déchets non triés, au lieu de les acheminer au centre cantonal de tri de Coffrane. Par ordonnance pénale du 28 mars 2003, le Ministère public du canton de Neuchâtel a condamné l'administrateur de la société B._, C._, à une amende de 10'000 fr. pour avoir contrevenu à diverses dispositions de la loi cantonale concernant le traitement des déchets et à l'arrêté cantonal concernant les déchets de chantier. C._ a fait opposition le 2 avril 2003. Le 1er mai 2003, A._ est intervenue auprès du Tribunal de police du district de Neuchâtel pour être admise à la procédure en qualité de plaignante. Par ordonnance du 10 juillet 2003, le Ministère public du canton de Neuchâtel a renvoyé C._ devant cette autorité comme prévenu d'infractions à la loi cantonale concernant le traitement des déchets et à l'arrêté cantonal concernant le tri des déchets de chantier, en requérant contre lui une peine de 10'000 fr. d'amende. Donnant suite à une demande du prévenu du 7 août 2003, le Président suppléant du Tribunal de police du district de Neuchâtel a, par ordonnance du 18 novembre 2003, écarté l'intervention de A._ dans le procès pénal dirigé contre C._, au motif que cette société n'était pas directement lésée par les infractions dénoncées. Par arrêt du 25 juin 2004, la Cour de cassation pénale du Tribunal cantonal du canton de Neuchâtel (ci-après: la Cour de cassation pénale ou la cour cantonale) a rejeté le pourvoi en cassation formé par A._ contre cette décision. Elle a estimé en substance que les prescriptions prétendument violées n'avaient pas pour finalité, même accessoire, de protéger les intérêts économiques de la recourante et que la diminution du chiffre d'affaires invoquée ne constituait qu'une lésion indirecte subie par une société anonyme qui ne pouvait prétendre au statut de collectivité publique. Par arrêt du 25 juin 2004, la Cour de cassation pénale du Tribunal cantonal du canton de Neuchâtel (ci-après: la Cour de cassation pénale ou la cour cantonale) a rejeté le pourvoi en cassation formé par A._ contre cette décision. Elle a estimé en substance que les prescriptions prétendument violées n'avaient pas pour finalité, même accessoire, de protéger les intérêts économiques de la recourante et que la diminution du chiffre d'affaires invoquée ne constituait qu'une lésion indirecte subie par une société anonyme qui ne pouvait prétendre au statut de collectivité publique. B. Agissant par la voie du recours de droit public, A._ demande au Tribunal fédéral d'annuler cet arrêt. Elle reproche à la cour cantonale d'avoir écarté arbitrairement son intervention dans la procédure pénale dirigée contre C._ en tant que partie plaignante. La Cour de cassation pénale se réfère à son arrêt. Le Ministère public du canton de Neuchâtel a renoncé à déposer des observations. 