Untitled


SUBMITTED BY: antoineh1

DATE: May 14, 2016, 9:38 p.m.

FORMAT: Text only

SIZE: 19.8 kB

HITS: 4708

  1. #include "LinkedList.h"
  2. #include "Media.h"
  3. #include "CompactDisc.h"
  4. #include "DigitalDisk.h"
  5. #include <iostream>
  6. #include <iomanip>
  7. #include <string>
  8. using namespace std;
  9. void addCD(LinkedList<CompactDisc> &);
  10. void addDVD(LinkedList<DigitalDisk> &);
  11. void subCD(LinkedList<CompactDisc> &);
  12. void subDVD(LinkedList<DigitalDisk> &);
  13. void modCD(LinkedList<CompactDisc> &);
  14. void modDVD(LinkedList<DigitalDisk> &);
  15. void quitManager(LinkedList<CompactDisc> &, LinkedList<DigitalDisk> &);
  16. int main()
  17. {
  18. LinkedList<CompactDisc> cdCollection;
  19. LinkedList<DigitalDisk> dvdCollection;
  20. int choice = 1;
  21. cout << "Welcome to media manager. What would you like to do? ";
  22. cout << "\n1. Add a CD\n2. Add a DVD\n3. Remove a CD\n4. Remove a DVD\n5. Change a CD\n6. Change a DVD\n7.Quit and display collection\n";
  23. cin >> choice;
  24. while (choice != 7)
  25. {
  26. if (choice == 1)
  27. {
  28. addCD(cdCollection);
  29. }
  30. else if (choice == 2)
  31. {
  32. addDVD(dvdCollection);
  33. }
  34. else if (choice == 3)
  35. {
  36. subCD(cdCollection);
  37. }
  38. else if (choice == 4)
  39. {
  40. subDVD(dvdCollection);
  41. }
  42. else if (choice == 5)
  43. {
  44. modCD(cdCollection);
  45. }
  46. else if (choice == 6)
  47. {
  48. modDVD(dvdCollection);
  49. }
  50. else
  51. {
  52. cout << "\nEnter a valid choice";
  53. }
  54. cout << "\n1. Add a CD\n2. Add a DVD\n3. Remove a CD\n4. Remove a DVD\n5. Change a CD\n6. Change a DVD\n7.Quit and display collection\n";
  55. cin >> choice;
  56. }
  57. quitManager(cdCollection, dvdCollection);
  58. return 0;
  59. }
  60. void addCD(LinkedList<CompactDisc> &cds)
  61. {
  62. string tempname;
  63. double temptime;
  64. string tempartist;
  65. CompactDisc tempdisk;
  66. cout << "\nEnter the name of the CD to add: ";
  67. cin.ignore();
  68. getline(cin, tempname);
  69. cout << "Enter the total length of the CD: ";
  70. cin >> temptime;
  71. cin.ignore();
  72. cout << "Enter the name of the CD artist: ";
  73. getline(cin, tempartist);
  74. tempdisk.setMediaName(tempname);
  75. tempdisk.setMediaLength(temptime);
  76. tempdisk.setArtistName(tempartist);
  77. cout << tempdisk.getMediaName();
  78. cds.appendNode(tempdisk);
  79. cout << "CD added\n";
  80. }
  81. void addDVD(LinkedList<DigitalDisk> &dvds)
  82. {
  83. string tempname;
  84. double temptime;
  85. int tempyear;
  86. DigitalDisk tempdisk;
  87. cout << "\nEnter the name of the DVD to add: ";
  88. cin.ignore();
  89. getline(cin, tempname);
  90. cout << "Enter the length of the movie: ";
  91. cin >> temptime;
  92. cout << "Enter the year the movie was released: ";
  93. cin >> tempyear;
  94. tempdisk.setMediaName(tempname);
  95. tempdisk.setMediaLength(temptime);
  96. tempdisk.setYearReleased(tempyear);
  97. dvds.appendNode(tempdisk);
  98. cout << "DVD added\n";
  99. }
  100. void subCD(LinkedList<CompactDisc> &cds)
  101. {
  102. string tempname;
  103. CompactDisc tempdisk;
  104. cout << "\nEnter the name of the CD to delete: ";
  105. cin.ignore();
  106. getline(cin, tempname);
  107. tempdisk.setMediaName(tempname);
  108. tempdisk = cds.searchList(tempdisk);
  109. if (tempdisk.getMediaLength() != 0)
  110. {
  111. cds.deleteNode(tempdisk);
  112. cout << "CD deleted\n";
  113. }
  114. else
  115. cout << "CD not in collection. Cannot Delete.\n";
  116. }
  117. void subDVD(LinkedList<DigitalDisk> &dvds)
  118. {
  119. string tempname;
  120. DigitalDisk tempdisk;
  121. cout << "\nEnter the name of the movie to delete: ";
  122. cin.ignore();
  123. getline(cin, tempname);
  124. tempdisk.setMediaName(tempname);
  125. tempdisk = dvds.searchList(tempdisk);
  126. if (tempdisk.getMediaLength() != 0)
  127. {
  128. dvds.deleteNode(tempdisk);
  129. cout << "\nDVD deleted";
  130. }
  131. else
  132. cout << "\nDVD not in collection. Cannot Delete.";
  133. }
  134. void modCD(LinkedList<CompactDisc> &cds)
  135. {
  136. int changeme;
  137. string tempname;
  138. CompactDisc tempdisc;
  139. cout << "\nEnter the name of a CD to change: ";
  140. cin.ignore();
  141. getline(cin, tempname);
  142. tempdisc.setMediaName(tempname);
  143. tempdisc = cds.searchList(tempdisc);
  144. while (tempdisc.getMediaLength() == 0)
  145. {
  146. cout << "\nEnter a valid name of a CD to change: ";
  147. cin.ignore();
  148. getline(cin, tempname);
  149. tempdisc.setMediaName(tempname);
  150. tempdisc = cds.searchList(tempdisc);
  151. }
  152. cout << "\nWhat would you like to change about this CD: ";
  153. cout << "\n1. Artist Name\n2.CD Length\n3. Add Song\n4. Delete Song\n5. CD Name\n6.Exit Modifier\n";
  154. cin >> changeme;
  155. cin.ignore();
  156. while (changeme != 6)
  157. {
  158. if (changeme == 1)
  159. {
  160. string tempname;
  161. cout << "\nEnter a new artist name: ";
  162. cin.ignore();
  163. getline(cin, tempname);
  164. tempdisc.setArtistName(tempname);
  165. cout << "\nName changed successfully";
  166. }
  167. else if (changeme == 2)
  168. {
  169. double temptime;
  170. cout << "\nEnter a new CD length: ";
  171. cin >> temptime;
  172. cin.ignore();
  173. tempdisc.setMediaLength(temptime);
  174. cout << "\nTime changed successfully";
  175. }
  176. else if (changeme == 3)
  177. {
  178. string tempname;
  179. double temptime;
  180. cout << "\nEnter a song name: ";
  181. cin.ignore();
  182. getline(cin, tempname);
  183. cout << "\nEnter a song length: ";
  184. cin >> temptime;
  185. cin.ignore();
  186. tempdisc.addSong(tempname, temptime);
  187. }
  188. else if (changeme == 4)
  189. {
  190. string tempname;
  191. cout << "\nEnter the name of a song to delete: ";
  192. getline(cin, tempname);
  193. if (tempdisc.deleteSong(tempname))
  194. {
  195. cout << "\nSong deleted successfully";
  196. }
  197. else
  198. cout << "\nSong does not exist in this CD to delete";
  199. }
  200. else
  201. {
  202. string tempname;
  203. cout << "\nEnter the new name of this CD: ";
  204. getline(cin, tempname);
  205. tempdisc.setMediaName(tempname);
  206. cout << "\nName changed successfully";
  207. }
  208. cout << "\nWhat would you like to change about this CD: ";
  209. cout << "\n1. Artist Name\n2.CD Length\n3. Add Song\n4. Delete Song\n5. CD Name\n6.Exit Modifier\n";
  210. cin >> changeme;
  211. cin.ignore();
  212. }
  213. cout << "\nNow exiting CD modifier...";
  214. }
  215. void modDVD(LinkedList<DigitalDisk> &dvds)
  216. {
  217. int changeme;
  218. string tempname;
  219. DigitalDisk tempdisc;
  220. cout << "\nEnter the name of a DVD to change: ";
  221. cin.ignore();
  222. getline(cin, tempname);
  223. tempdisc.setMediaName(tempname);
  224. tempdisc = dvds.searchList(tempdisc);
  225. while (tempdisc.getMediaLength() == 0)
  226. {
  227. cout << "\nEnter a valid name of a DVD to change: ";
  228. getline(cin, tempname);
  229. tempdisc.setMediaName(tempname);
  230. tempdisc = dvds.searchList(tempdisc);
  231. }
  232. cout << "\nWhat would you like to change about this DVD: ";
  233. cout << "\n1. Actor or Character name\n2.DVD Length\n3. Add Actor/Character\n4. Delete ActorCharacter\n5. Year Released\n6. DVD name";
  234. cout << "\n7.Exit Modifier\n";
  235. cin >> changeme;
  236. cin.ignore();
  237. while (changeme != 7)
  238. {
  239. if (changeme == 1)
  240. {
  241. int whichtochange;
  242. cout << "\nChange: \n1. Actor name\n2.Character name";
  243. cin >> whichtochange;
  244. cin.ignore();
  245. if (whichtochange == 1)
  246. {
  247. string tempname;
  248. cout << "\nEnter a new actor name: ";
  249. cin.ignore();
  250. getline(cin, tempname);
  251. if (tempdisc.changeActor(tempname))
  252. cout << "\nActor changed successfully";
  253. else
  254. cout << "\nActor does not exist to change";
  255. }
  256. else
  257. {
  258. string tempaname;
  259. string tempcname;
  260. cout << "\nEnter an actor to change their character's name: ";
  261. cin.ignore();
  262. getline(cin, tempaname);
  263. cout << "\nEnter their new character's name: ";
  264. cin.ignore();
  265. getline(cin, tempcname);
  266. if (tempdisc.changeCharacter(tempaname, tempcname))
  267. cout << "\nCharacter changed successfully";
  268. else
  269. cout << "\nActor does not exist to change character name";
  270. }
  271. }
  272. else if (changeme == 2)
  273. {
  274. double temptime;
  275. cout << "\nEnter a new movie length: ";
  276. cin >> temptime;
  277. cin.ignore();
  278. tempdisc.setMediaLength(temptime);
  279. cout << "\nTime changed successfully";
  280. }
  281. else if (changeme == 3)
  282. {
  283. string tempaname;
  284. string tempcname;
  285. cout << "\nEnter a new actor name: ";
  286. getline(cin, tempaname);
  287. cout << "\nEnter a new character name: ";
  288. getline(cin, tempcname);
  289. tempdisc.addPlayer(tempaname, tempcname);
  290. }
  291. else if (changeme == 4)
  292. {
  293. string tempname;
  294. cout << "\nEnter the name of an actor to delete: ";
  295. if (tempdisc.deletePlayer(tempname))
  296. {
  297. cout << "\nActor deleted successfully";
  298. }
  299. else
  300. cout << "\nActor does not exist in this movie to delete";
  301. }
  302. else if (changeme == 5)
  303. {
  304. int tempyear;
  305. cout << "\nEnter a new year of release for this movie: ";
  306. cin >> tempyear;
  307. cin.ignore();
  308. tempdisc.setYearReleased(tempyear);
  309. cout << "\nYear changed successfully";
  310. }
  311. else
  312. {
  313. string tempname;
  314. cout << "Enter the new name of this DVD: ";
  315. getline(cin, tempname);
  316. tempdisc.setMediaName(tempname);
  317. cout << "\nName changed successfully";
  318. }
  319. cout << "\nWhat would you like to change about this DVD: ";
  320. cout << "\n1. Actor or Character name\n2.DVD Length\n3. Add Actor/Character\n4. Delete ActorCharacter\n5. Year Released\n6. DVD name";
  321. cout << "\n7.Exit Modifier\n";
  322. cin >> changeme;
  323. cin.ignore();
  324. }
  325. cout << "\nNow exiting DVD modifier...";
  326. }
  327. void quitManager(LinkedList<CompactDisc> &cds, LinkedList<DigitalDisk> &dvds)
  328. {
  329. cout << "\nThank you for using Media Manager. Your collection is as follows: " << endl << endl;
  330. cout << "DVD Collection\n ~~~~~~~~~~~~~~~~~~\n";
  331. cout << "Movie Title " << setw(20) << "Length of Movie" << setw(20) << "Year Released" << setw(10) << "Actors" << setw(10) << "Character";
  332. dvds.displayList();
  333. cout << endl;
  334. }
  335. ----------------------------------------------
  336. #ifndef DIGITALDISK_H
  337. #define DIGITALDISK_H
  338. #include <iostream>
  339. #include <iomanip>
  340. #include <string>
  341. #include "LinkedList.h"
  342. #include "Media.h"
  343. #include "Player.h"
  344. class DigitalDisk;
  345. ostream &operator << (ostream &, const DigitalDisk &);
  346. class DigitalDisk : public Media
  347. {
  348. private:
  349. int yearReleased;
  350. LinkedList<Player> credits;
  351. public:
  352. DigitalDisk() :Media()
  353. {
  354. yearReleased = 0;
  355. }
  356. DigitalDisk(std::string mn, double ml, int yr) : Media(mn, ml)
  357. {
  358. yearReleased = yr;
  359. }
  360. void setYearReleased(int yr)
  361. {
  362. yearReleased = yr;
  363. }
  364. int getYearReleased()
  365. {
  366. return yearReleased;
  367. }
  368. void addPlayer(string an, string cn)
  369. {
  370. Player temp;
  371. temp.setActorName(an);
  372. temp.setCharacterName(cn);
  373. credits.appendNode(temp);
  374. credits.displayList();
  375. cout << "\nActor/Character added";
  376. }
  377. bool deletePlayer(std::string an)
  378. {
  379. Player temp;
  380. temp.setActorName(an);
  381. temp = credits.searchList(temp);
  382. if (temp.getCharacterName() != "")
  383. {
  384. credits.deleteNode(temp);
  385. return true;
  386. }
  387. else
  388. return false;
  389. }
  390. bool changeActor(std::string an)
  391. {
  392. Player temp1;
  393. Player temp2;
  394. temp2.setActorName(an);
  395. temp2 = credits.searchList(temp2);
  396. if (temp2.getCharacterName() != "")
  397. {
  398. temp1 = temp2;
  399. temp1.setActorName(an);
  400. credits.deleteNode(temp2);
  401. credits.appendNode(temp1);
  402. return true;
  403. }
  404. else
  405. return false;
  406. }
  407. bool changeCharacter(std::string an, std::string cn)
  408. {
  409. Player temp1;
  410. Player temp2;
  411. temp2.setActorName(an);
  412. temp2 = credits.searchList(temp2);
  413. if (temp2.getCharacterName() != "")
  414. {
  415. temp1 = temp2;
  416. temp1.setCharacterName(cn);
  417. credits.deleteNode(temp2);
  418. credits.appendNode(temp1);
  419. return true;
  420. }
  421. else
  422. return false;
  423. }
  424. bool operator == (DigitalDisk &right)
  425. {
  426. if (mediaName == right.getMediaName())
  427. return true;
  428. else
  429. return false;
  430. }
  431. bool operator != (DigitalDisk &right)
  432. {
  433. if (mediaName != right.getMediaName())
  434. return true;
  435. else
  436. return false;
  437. }
  438. DigitalDisk operator = (DigitalDisk &right)
  439. {
  440. mediaName = right.getMediaName();
  441. mediaLength = right.getMediaLength();
  442. yearReleased = right.getYearReleased();
  443. return *this;
  444. }
  445. void displayCredits()
  446. {
  447. credits.displayList();
  448. }
  449. friend ostream &operator << (ostream & strm, const DigitalDisk &obj)
  450. {
  451. strm << endl << obj.mediaName << setw(10) << obj.mediaLength << setw(10) << obj.yearReleased << setw(10);
  452. return strm;
  453. }
  454. };
  455. #endif
  456. ----------------------------------------------
  457. #ifndef COMPACTDISC_H
  458. #define COMPACTDISC_H
  459. #include <string>
  460. #include "LinkedList.h"
  461. #include "Media.h"
  462. class CompactDisc : public Media
  463. {
  464. struct song
  465. {
  466. std::string songName;
  467. double songLength;
  468. bool operator ==(song &right)
  469. {
  470. if (songName == right.songName && songLength == right.songLength)
  471. return true;
  472. else
  473. return false;
  474. }
  475. bool operator !=(song &right)
  476. {
  477. if (songName != right.songName && songLength != right.songLength)
  478. return true;
  479. else
  480. return false;
  481. }
  482. song operator = (song &right)
  483. {
  484. song temp;
  485. temp.songName = right.songName;
  486. temp.songLength = right.songLength;
  487. return temp;
  488. }
  489. void displaySong()
  490. {
  491. cout << songName << songLength;
  492. }
  493. };
  494. private:
  495. LinkedList<song> setlist;
  496. std::string artistName;
  497. public:
  498. CompactDisc() : Media()
  499. {
  500. artistName = "";
  501. }
  502. CompactDisc(std::string mn, double ml, std::string an) : Media(mn, ml)
  503. {
  504. artistName = an;
  505. }
  506. void setArtistName(std::string an)
  507. {
  508. artistName = an;
  509. }
  510. std::string getArtistName()
  511. {
  512. return artistName;
  513. }
  514. void addSong(std::string sn, double sl)
  515. {
  516. song temp;
  517. temp.songName = sn;
  518. temp.songLength = sl;
  519. setlist.appendNode(temp);
  520. }
  521. bool deleteSong(std::string sn)
  522. {
  523. song temp;
  524. temp.songName = sn;
  525. temp = setlist.searchList(temp);
  526. if (temp.songLength != 0)
  527. {
  528. setlist.deleteNode(temp);
  529. return true;
  530. }
  531. else
  532. return false;
  533. }
  534. bool operator == (CompactDisc &right)
  535. {
  536. if (mediaName == right.getMediaName())
  537. return true;
  538. else
  539. return false;
  540. }
  541. bool operator != (CompactDisc &right)
  542. {
  543. if (mediaName != right.getMediaName())
  544. return true;
  545. else
  546. return false;
  547. }
  548. CompactDisc operator = (CompactDisc &right)
  549. {
  550. mediaName = right.getMediaName();
  551. mediaLength = right.getMediaLength();
  552. artistName = right.getArtistName();
  553. return *this;
  554. }
  555. };
  556. #endif;
  557. ----------------------------------------------
  558. #ifndef MEDIA_H
  559. #define MEDIA_H
  560. #include <iostream>
  561. #include <string>
  562. using namespace std;
  563. class Media
  564. {
  565. protected:
  566. string mediaName;
  567. double mediaLength;
  568. public:
  569. Media()
  570. {
  571. mediaName = "";
  572. mediaLength = 0;
  573. }
  574. Media(string mn, double ml)
  575. {
  576. mediaName = mn;
  577. mediaLength = ml;
  578. }
  579. void setMediaName(string mn)
  580. {
  581. mediaName = mn;
  582. }
  583. void setMediaLength(double ml)
  584. {
  585. mediaLength = ml;
  586. }
  587. string getMediaName()
  588. {
  589. return mediaName;
  590. }
  591. double getMediaLength()
  592. {
  593. return mediaLength;
  594. }
  595. };
  596. #endif
  597. ----------------------------------------------
  598. #ifndef PLAYER_H
  599. #define PLAYER_H
  600. #include <string>
  601. #include <iostream>
  602. #include <iomanip>
  603. using namespace std;
  604. class Player;
  605. ostream &operator << (ostream &, const Player &);
  606. class Player
  607. {
  608. private:
  609. string actorName;
  610. string characterName;
  611. public:
  612. Player()
  613. {
  614. actorName = "";
  615. characterName = "";
  616. }
  617. void setActorName(string an)
  618. {
  619. actorName = an;
  620. }
  621. void setCharacterName(string cn)
  622. {
  623. characterName = cn;
  624. }
  625. string getCharacterName()
  626. {
  627. return characterName;
  628. }
  629. string getActorName()
  630. {
  631. return actorName;
  632. }
  633. bool operator == (Player &right)
  634. {
  635. if (actorName == right.getActorName())
  636. return true;
  637. else
  638. return false;
  639. }
  640. bool operator != (Player &right)
  641. {
  642. if (actorName != right.getActorName())
  643. return true;
  644. else
  645. return false;
  646. }
  647. Player operator = (Player &right)
  648. {
  649. actorName = right.getActorName();
  650. characterName = right.getCharacterName();
  651. return *this;
  652. }
  653. inline friend ostream &operator << (ostream & strm, const Player &obj)
  654. {
  655. strm << setw(30) << obj.actorName << "/" << obj.characterName << endl;
  656. return strm;
  657. }
  658. };
  659. #endif
  660. ----------------------------------------------
  661. //Class declaration for LinkedList. This class creates a
  662. //template class for a LinkedList that can be appended to,
  663. //have data inserted to or deleted from, and searched for a
  664. //position of a certain piece of data.
  665. #ifndef LINKEDLIST_H
  666. #define LINKEDLIST_H
  667. #include <string>
  668. #include <iostream>
  669. using namespace std;
  670. template<class T>
  671. class LinkedList
  672. {
  673. private:
  674. struct ListNode
  675. {
  676. T value;
  677. struct ListNode *next;
  678. };
  679. ListNode *head;
  680. public:
  681. //Constructor that starts a new linked list.
  682. LinkedList()
  683. {
  684. head = nullptr;
  685. }
  686. //Destructor that will destroy the list.
  687. ~LinkedList();
  688. void appendNode(T);
  689. void insertNode(T);
  690. void deleteNode(T);
  691. void displayList() const;
  692. T searchList(T);
  693. };
  694. //Function definition for appendNode
  695. //This function takes new information for a new list and
  696. //creates the list with the information entered in the order it
  697. //is recieved.
  698. template <class T>
  699. void LinkedList<T>::appendNode(T newValue)
  700. {
  701. ListNode *newNode;
  702. ListNode *nodePtr;
  703. newNode = new ListNode;
  704. newNode->value = newValue;
  705. newNode->next = nullptr;
  706. if (!head)
  707. head = newNode;
  708. else
  709. {
  710. nodePtr = head;
  711. while (nodePtr->next)
  712. nodePtr = nodePtr->next;
  713. nodePtr->next = newNode;
  714. }
  715. }
  716. //Function definition for displayList.
  717. //This function shows the list as it sits.
  718. template <class T>
  719. inline void LinkedList<T>::displayList() const
  720. {
  721. ListNode *nodePtr;
  722. nodePtr = head;
  723. while (nodePtr)
  724. {
  725. cout << nodePtr->value;
  726. nodePtr = nodePtr->next;
  727. }
  728. }
  729. //Function definition for insertNode.
  730. //This function will create and insert data into an
  731. //existing list. This function will insert the data
  732. //into the list in a sorted manner. I.E. if the list
  733. //is 4, 5, 7, 8, then 6 would be inserted in the middle.
  734. template <class T>
  735. void LinkedList<T>::insertNode(T newValue)
  736. {
  737. ListNode *newNode;
  738. ListNode *nodePtr;
  739. ListNode *previousNode = nullptr;
  740. newNode = new ListNode;
  741. newNode->value = newValue;
  742. if (!head)
  743. {
  744. head = newNode;
  745. newNode->next = nullptr;
  746. }
  747. else
  748. {
  749. nodePtr = head;
  750. previousNode = nullptr;
  751. while (nodePtr != nullptr && nodePtr->value < newValue)
  752. {
  753. previousNode = nodePtr;
  754. nodePtr = nodePtr->next;
  755. }
  756. if (previousNode == nullptr)
  757. {
  758. head = newNode;
  759. newNode->next = nodePtr;
  760. }
  761. else
  762. {
  763. previousNode->next = newNode;
  764. newNode->next = nodePtr;
  765. }
  766. }
  767. }
  768. //Function definition for deleteNode.
  769. //This function searches for a specified node
  770. //and deletes it and the place of the node in the
  771. //list so there is not just one huge gap in the list.
  772. template <class T>
  773. void LinkedList<T>::deleteNode(T searchValue)
  774. {
  775. ListNode *nodePtr;
  776. ListNode *previousNode = nullptr;
  777. if (!head)
  778. return;
  779. if (head->value == searchValue)
  780. {
  781. nodePtr = head->next;
  782. delete head;
  783. head = nodePtr;
  784. }
  785. else
  786. {
  787. nodePtr = head;
  788. while (nodePtr != nullptr && nodePtr->value != searchValue)
  789. {
  790. previousNode = nodePtr;
  791. nodePtr = nodePtr->next;
  792. }
  793. if (nodePtr)
  794. {
  795. previousNode->next = nodePtr->next;
  796. delete nodePtr;
  797. }
  798. }
  799. }
  800. //Destructor definition for class LinkedList.
  801. //This destructor destroys the whole list.
  802. template <class T>
  803. LinkedList<T>::~LinkedList()
  804. {
  805. ListNode *nodePtr;
  806. ListNode *nextNode;
  807. nodePtr = head;
  808. while (nodePtr != nullptr)
  809. {
  810. nextNode = nodePtr->next;
  811. delete nodePtr;
  812. nodePtr = nextNode;
  813. }
  814. }
  815. //Function definition for searchList.
  816. //This function searches for a specified data member.
  817. //If the number is found it returns the place of the data.
  818. //If the searched for is not found, then it returns negative 1.
  819. template <class T>
  820. T LinkedList<T>::searchList(T searchValue)
  821. {
  822. ListNode *nodePtr;
  823. nodePtr = head;
  824. while (nodePtr != nullptr)
  825. {
  826. if (nodePtr-> value == searchValue)
  827. {
  828. searchValue = nodePtr->value;
  829. return searchValue;
  830. }
  831. nodePtr = nodePtr->next;
  832. }
  833. return searchValue;
  834. }
  835. #endif

comments powered by Disqus