Network Function Virtualization (NFV) can lower the CAPEX and/or OPEX for service providers and allow for quick deployment of services. The main challenge in the use of Virtualized Network Functions (VNF) is the VNFs' placement in the network. This research provides mathematical models and heuristics for NF placement for wired and wireless networks. We use Integer Linear and Non-Linear Programming as a mathematical optimization program for NF placement. We start from a basic model for a wired network and extend it gradually to develop a traffic-aware mathematical model for NF placement in wireless multi-hop networks. For the first time, we model the interference which is a major difference between a wired and wireless network and included it in our optimization model. We identified the issue of scarcity of BW in wireless multi-hop networks and its role in the average cost of placement and acceptance rate of requests. The critical problem of mathematical models is that they are NP-hard, and consequently not applicable to larger networks. While there exist many efforts in designing a heuristic model that can provide solutions in a timely manner, the primary focus with such heuristics was almost always whether they provide near-optimal results. Consequently, the heuristics themselves become quite non-trivial, and solving the placement problem for larger networks still takes a significant amount of time. In our research, in contrast, we focus on designing a simple and scalable heuristic. We propose a set of heuristics, which are gradually becoming more complex. We start from the random placement heuristic as the simplest approach and at each step add a parameter such as choosing between shortest paths, sort NFs based on their nodal resources, and replacing previously placed NFs to our heuristic. We compare the performance of our heuristics with each other, related heuristics, and our mathematical model. Our results demonstrate that the simple approach of placing NFs along their shortest path can find near-optimal solutions much faster than the other more complicated heuristics while keeping the ratio of accepted requests close to the acceptance ratio of our NP-hard optimization model.