The structural controller, described by adding the control places to the Petri nets, is introduced in this work to lead the Petri net to the desired marking vectors. An algorithm (Algorithm I) is developed to determine the control places for the given Petri net. The connections and the initial marking of each control place are determined in this algorithm. Moreover, a decentralized structural control approach, based on overlapping decompositions, is introduced in this work. In this decentralized approach, all disjoint Petri subnets, which are obtained by using overlapping decompositions, are determined. The control places for each Petri subnet are determined by using the given algorithm. Then, the control places for the orginal Petri net are obtained by the control places of each PSN by another algorithm (Algorithm II) and these places are added to the orginal Petri net. Therefore, a decentralized structural controller which guarantees to lead the Petri net to the desired marking vectors is obtained.