• c语言:顺序表的按位置插入删除,去重操作。链表的尾插和输出


    顺序表: 

    1. datatype seek_index(seqlist*list,int index){//按位置查找
    2. if(list->len<=index||list->len==0||index>MAXSIZE){
    3. return -1;
    4. }
    5. printf("%d\n",list->date[index]);
    6. return 0;
    7. }
    8. int insert_index(seqlist*list,int index,datatype dat){//按位置插入
    9. if(list->len==MAXSIZE||index<0||index>MAXSIZE){
    10. return -1;
    11. }
    12. for(int i=list->len-1;i>=index;i--){
    13. list->date[i+1]=list->date[i];
    14. }
    15. list->date[index]=dat;
    16. list->len++;
    17. return 0;
    18. }
    19. int dele_index(seqlist*list,int index){//按位置删除
    20. if(index>list->len-1||index<0||index>MAXSIZE||list->len==0){
    21. return -1;
    22. }
    23. for(int i=index+1;i<=list->len-1;i++){
    24. list->date[i-1]=list->date[i];
    25. }
    26. list->len--;
    27. return 0;
    28. }
    29. void re_duplicate(seqlist *list){//去重
    30. int i=0,k=0;
    31. for(i=0;ilen-1;i++){
    32. for(k=i+1;klen;k++){
    33. if(list->date[k]==list->date[i]){
    34. dele_index(list,k);
    35. k--;
    36. }
    37. }
    38. }
    39. }

     

     链表:

    1. int insert_head(linklist p,datatype data){//头插
    2. if(p==NULL)return -1;
    3. linklist q=create();
    4. if(q==NULL)return -1;
    5. q->next=p->next;
    6. p->next=q;
    7. q->data=data;
    8. p->len++;
    9. return 0;
    10. }
    11. int output(linklist p){//输出
    12. puts("");
    13. if(p==NULL||p->len==0)return -1;
    14. linklist q=p;
    15. for(int i=0;ilen;i++){
    16. q=q->next;
    17. printf("%d\t",q->data);
    18. }
    19. putchar(10);
    20. return 0;
    21. }
    22. int insert_rear(linklist p,datatype key){//尾插
    23. if(p==NULL)return -1;
    24. linklist q=p;
    25. for(int i=0;ilen;i++){
    26. q=q->next;
    27. }//指向当前最后一个节点
    28. linklist s=create();
    29. if(s==NULL)return -1;
    30. q->next=s;
    31. p->len++;
    32. s->data=key;
    33. return 0;
    34. }
    35. int dele_head(linklist p){//头删
    36. if(p==0||p->len==0){
    37. return -1;
    38. }
    39. linklist q=p->next;
    40. p->next=q->next;
    41. q=mfree(q);
    42. p->len--;
    43. return 0;
    44. }
    45. int dele_rear(linklist p){//尾删
    46. if(p==NULL||p->len==0)return -1;
    47. linklist q=p;
    48. for(int i=0;ilen-1;i++)
    49. q=q->next;
    50. q->next=mfree(q->next);
    51. p->len--;
    52. return 0;
    53. }
    54. int dele_index(linklist p,int index){//按位置删
    55. if(p==NULL||index>p->len||index<1)return -1;
    56. linklist q=p;
    57. for(int i=0;i-1;i++){
    58. q=q->next;
    59. }
    60. linklist k=q->next;
    61. q->next=k->next;
    62. k=mfree(k);
    63. p->len--;
    64. return 0;
    65. }
    66. int insert_index(linklist p,int index,datatype key){//按位置插
    67. if(p==NULL||index>p->len+1||index<1){
    68. return -1;
    69. }
    70. linklist q=p;
    71. for(int i=0;ilen-1;i++){
    72. q=q->next;
    73. }
    74. linklist k=create();
    75. if(k==NULL)return -1;
    76. k->data=key;
    77. k->next=q->next;
    78. q->next=k;
    79. p->len++;
    80. return 0;
    81. }

  • 相关阅读:
    vue移动端项目渲染pdf步骤
    剑指offer专项突击版第30天
    数据结构预算法--链表(单链表,双向链表)
    Java—类加载机制
    Meta RGB透视VR研究:摄像头距离可调、分辨率720p
    【国际竞赛-计算机篇】2022年高含金量的计算机竞赛有哪些
    互联网Java工程师面试题·Spring篇·第五弹
    Cobaltstrike常用功能
    Selenium获取本地已打开的浏览器页面进行跟踪和自定义日志记录
    (附源码)spring boot大学毕业设计管理系统 毕业设计 030945
  • 原文地址:https://blog.csdn.net/m0_60953264/article/details/136241190