Advertisement
ahmad_zizo

search

May 29th, 2014
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. //انا عملت
  2. //two functions
  3. //زيادة للسيرش
  4.  
  5.  
  6. //هتزود السطرين دول في الهيدر
  7. void search_id_2(node_id** tree, int id);
  8. void search_name_2(node_id** tree, char* name);
  9.  
  10. //هتزود دول في
  11. //trees.c
  12. void search_id_2(node_id** tree, int id) {
  13. if (!(*tree)) {
  14. return;
  15. }
  16.  
  17. if (id == (*tree)->id) {
  18. printf("%s %d\n",(*tree)->name,(*tree)->id);
  19. }
  20. if (id < (*tree)->id) {
  21. search_id_2(&((*tree)->left), id);
  22. }
  23. else {
  24. search_id_2(&((*tree)->right), id);
  25. }
  26.  
  27. return;
  28. }
  29.  
  30. void search_name_2(node_id** tree, char* name) {
  31. if (!(*tree)) {
  32. return;
  33. }
  34.  
  35. if (strstr((*tree)->name,name) != NULL) {
  36. printf("%s %d\n",(*tree)->name,(*tree)->id);
  37. }
  38. if (strcmpi(name, (*tree)->name) < 0) {
  39. search_name_2(&((*tree)->left), name);
  40. }
  41. else
  42. {
  43. search_name_2(&((*tree)->right), name);
  44. }
  45. return NULL;
  46. }
  47.  
  48.  
  49. //ودول هتحطهم في ال
  50. //main.c
  51. //بدل الموجودين
  52. case 11:
  53. {
  54. printf("Enter name: ");
  55. while((c= getchar()) != '\n' && c != EOF);
  56. gets(name);
  57. search_name_2(&root_name, name);
  58. break;
  59. }
  60. case 12:
  61. {
  62. printf("Enter id: ");
  63. scanf("%d", &id);
  64. search_id_2(&root_id, id);
  65. break;
  66. }
  67. //واخير
  68. //هتحط دي بدل اللي عندك
  69. //انا ظبطتها بحيث ان لو واحد دخل جزء من الاسم تطلعله نتيجة
  70. node_id* search_name(node_id** tree, char* name)
  71. {
  72. if (!(*tree))
  73. {
  74. return NULL;
  75. }
  76.  
  77. if (strstr((*tree)->name,name) != NULL)
  78. {
  79. return *tree;
  80. }
  81. else if (strcmpi(name, (*tree)->name) < 0)
  82. {
  83. search_name(&((*tree)->left), name);
  84. }
  85. else if (strcmpi(name, (*tree)->name) > 0)
  86. {
  87. search_name(&((*tree)->right), name);
  88. }
  89. return NULL;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement