• 2024-2-22 作业


    作业要求:

    1. 复习前面知识点(指针、结构体、函数)
    2. 整理思维导图
    3. 顺序表(按位置插入、按位置删除和去重、重新写)
    4. 理解链表的代码,尝试写一下链表的尾插和输出

    1.复习前面知识点(指针、结构体、函数)

    2.整理思维导图

    3.顺序表(按位置插入、按位置删除和去重、重新写)

    运行代码:
    1. #include "seq_list.h"
    2. seq_p creat_seq_link()
    3. {
    4. seq_p L=(seq_p)malloc(sizeof(seq_link));
    5. if(NULL==L){
    6. printf("申请失败\n");
    7. return -1;
    8. }
    9. bzero(L->data,sizeof(L->data));
    10. L->len=0;
    11. return L;
    12. }
    13. void insert_head(seq_p L,datatype data)
    14. {
    15. if(NULL==L){
    16. printf("入参失败请检查\n");
    17. return;
    18. }
    19. if(MAX==L->len){
    20. printf("数组已满\n");
    21. return;
    22. }
    23. for(int i=L->len-1;i>=0;i--){
    24. L->data[i+1]=L->data[i];
    25. }
    26. L->data[0]=data;
    27. L->len++;
    28. }
    29. #if 1
    30. void insert_pos(seq_p L,int pos,datatype data)
    31. {
    32. if(NULL==L){
    33. printf("入参失败请检查\n");
    34. return;
    35. }
    36. if(MAX==L->len){
    37. printf("数组已满\n");
    38. return;
    39. }
    40. for(int i=L->len-1;i>=pos;i--){
    41. L->data[i+1]=L->data[i];
    42. }
    43. L->data[pos]=data;
    44. L->len++;
    45. }
    46. void del_pos(seq_p L,int pos)
    47. {
    48. if(NULL==L){
    49. printf("入参失败请检查\n");
    50. return;
    51. }
    52. if(0==L->len){
    53. printf("数组已空\n");
    54. return;
    55. }
    56. for(int i=pos;ilen-1;i++){
    57. L->data[i]=L->data[i+1];
    58. }
    59. L->data[L->len-1]=0;
    60. L->len--;
    61. }
    62. void signal(seq_p L)
    63. {
    64. if(NULL==L){
    65. printf("入参失败请检查\n");
    66. return;
    67. }
    68. if(0==L->len){
    69. printf("数组已空\n");
    70. return;
    71. }
    72. for(int i=0;ilen-1;i++){
    73. for(int j=i+1;jlen;j++){
    74. if(L->data[i]==L->data[j]){
    75. del_pos(L,j);
    76. j--;
    77. }
    78. }
    79. }
    80. }
    81. void print(seq_p L)
    82. {
    83. for(int i=0;ilen;i++){
    84. printf("%d ",L->data[i]);
    85. }
    86. putchar(10);
    87. }
    运行截图:

    4. 理解链表的代码,尝试写一下链表的尾插和输出

    运行代码:
    1. //尾插函数
    2. void insert_tail(link_p H,datatype data)
    3. {
    4. if(NULL==H){
    5. printf("入参失败重新申请\n");
    6. return;
    7. }
    8. link_p new = creat_node(data);
    9. link_p temp = H;
    10. for(int i=0;i<H->len;i++){
    11. temp=temp->next;
    12. }
    13. new->next=temp->next;
    14. temp->next=new;
    15. H->len++;
    16. }
    17. //输出函数
    18. void print(link_p H)
    19. {
    20. int i;
    21. if(H==NULL){
    22. printf("入参失败,请检查\n");
    23. return;
    24. }
    25. link_p temp=H->next;
    26. for(i=0;i<H->len;i++){
    27. printf("%d ",temp->data);
    28. temp=temp->next;
    29. }
    30. putchar(10);
    31. }
    运行截图:

  • 相关阅读:
    爆款视频怎么做?这里或许有答案
    Qt 5.15.2 Windows 子目录项目: undefined reference to `vtable for xxx‘
    TinySnippet轻UI组件开发系列教程 — DataGrid选择事件
    pytorch神经网络工具箱
    CrossOver23.6软件激活码怎么获取 CrossOver软件2023怎么激活
    统信UOS Linux操作系统下怎么删除某个程序在开始菜单或桌面的快捷方式
    系列五、GC垃圾回收【四大垃圾算法-复制算法】
    【Transformers】第 7 章:文本表示
    【无标题】
    强化学习------Sarsa算法
  • 原文地址:https://blog.csdn.net/qq_51876337/article/details/136242025