You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

data_struct_pro.c 4.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. /*
  2. ███████╗██████╗ ██████╗ ███████╗ ███████╗███╗ ██╗ ██████╗ ██╗███╗ ██╗███████╗
  3. ██╔════╝██╔══██╗██╔════╝ ██╔════╝ ██╔════╝████╗ ██║██╔════╝ ██║████╗ ██║██╔════╝
  4. █████╗ ██║ ██║██║ ███╗█████╗ █████╗ ██╔██╗ ██║██║ ███╗██║██╔██╗ ██║█████╗
  5. ██╔══╝ ██║ ██║██║ ██║██╔══╝ ██╔══╝ ██║╚██╗██║██║ ██║██║██║╚██╗██║██╔══╝
  6. ███████╗██████╔╝╚██████╔╝███████╗ ███████╗██║ ╚████║╚██████╔╝██║██║ ╚████║███████╗
  7. ╚══════╝╚═════╝ ╚═════╝ ╚══════╝ ╚══════╝╚═╝ ╚═══╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝╚══════╝
  8. Author:Edge
  9. Web:likedge.top
  10. Date:20201213
  11. */
  12. #include "data_struct_pro.h"
  13. #define random(x) (rand()%x)
  14. link_list::link_list()
  15. {
  16. cout<<"test"<<endl;
  17. }
  18. //init function on link_list
  19. //n:len
  20. link_list::link_list(int n)
  21. {
  22. this->len=n;
  23. this->link_list_head =(lnode*)malloc(sizeof(lnode));
  24. lnode *node1=(lnode*)malloc(sizeof(lnode));
  25. lnode *p= this->link_list_head;
  26. // this->link_list_head =new lnode(1,0);
  27. for(int index_link_node=0;index_link_node<n;index_link_node++)
  28. {
  29. lnode *node1=(lnode*)malloc(sizeof(lnode));
  30. p->next_index=node1;
  31. p->data=index_link_node;
  32. cout<<p->data<<endl;
  33. cout<<p->next_index<<endl;
  34. p=p->next_index;
  35. // cout<<"Node:"<<this->link_list_head->next_index<<endl;
  36. }
  37. }
  38. //travel around the link_list
  39. void list_ergodic(link_list link_list_ergodic)
  40. {
  41. cout<<"len:"<<link_list_ergodic.len<<endl;
  42. lnode *ldir_head=link_list_ergodic.link_list_head;
  43. for(int i = 0;i<=link_list_ergodic.len;i++){
  44. cout<<"list["<<i<<"]:"<<ldir_head->data<<endl;
  45. ldir_head=ldir_head->next_index;
  46. }
  47. }
  48. //insert element for what u input,in this index
  49. void insert_element_ll(int index_toinsert,link_list ll_toinsert,int to_insertele)
  50. {
  51. lnode *insert_p=ll_toinsert.link_list_head;
  52. for(int index_move = 0;index_move<ll_toinsert.len;index_move++){
  53. if(index_move==index_toinsert-1)
  54. {
  55. lnode *node1=(lnode*)malloc(sizeof(lnode));
  56. lnode *old_next_index=insert_p->next_index;
  57. insert_p->next_index=node1;
  58. insert_p->next_index->data=to_insertele;
  59. node1->next_index=old_next_index;
  60. }
  61. insert_p=insert_p->next_index;
  62. }
  63. }
  64. //delete the element from where you index
  65. void dele_element_ll(int index_todele,link_list ll_todele)
  66. {
  67. lnode *dele_p=ll_todele.link_list_head;
  68. for(int index_move=0;index_move<ll_todele.len;index_move++)
  69. {
  70. if(index_move==index_todele-1)
  71. {
  72. lnode *node1=(lnode*)malloc(sizeof(lnode));
  73. lnode *old_index_to_dele=dele_p->next_index;
  74. dele_p->next_index=old_index_to_dele->next_index;
  75. }
  76. dele_p=dele_p->next_index;
  77. }
  78. }
  79. void insert_end_ll(int to_insert_end,link_list ll_toinsert_end)
  80. {
  81. lnode *end_p=ll_toinsert_end.link_list_head;
  82. for(int index_move_toend=0;index_move_toend<=ll_toinsert_end.len;index_move_toend++)
  83. {
  84. cout<<index_move_toend<<endl;
  85. if(index_move_toend==ll_toinsert_end.len)
  86. {
  87. lnode *node_to_insert_end=(lnode*)malloc(sizeof(lnode));
  88. node_to_insert_end->data=to_insert_end;
  89. cout<<index_move_toend<<endl;
  90. end_p->next_index=node_to_insert_end;
  91. }
  92. end_p=end_p->next_index;
  93. }
  94. ll_toinsert_end.len+=1;
  95. cout<<ll_toinsert_end.len<<endl;
  96. //insert element to end of link_list
  97. }

Edge : 一个开源的科学计算引擎

Contributors (1)