• 4.2作业


    1、使用模板类,实现顺序栈

    1. #include
    2. using namespace std;
    3. template<typename T>
    4. class Stack
    5. {
    6. T *data;
    7. T top;
    8. T size;
    9. public:
    10. //构造函数
    11. Stack():size(7)
    12. {
    13. data = new T[size];
    14. top = -1;
    15. cout << "Stack的无参构造" << endl;
    16. }
    17. //析构函数
    18. ~Stack()
    19. {
    20. delete []data;
    21. cout << "Stack的析构函数" << endl;
    22. }
    23. //判空
    24. bool stackempty();
    25. //判满
    26. bool stackfull();
    27. //入栈
    28. void push(T data);
    29. //出栈
    30. void pop();
    31. //遍历
    32. void show();
    33. };
    34. //判空
    35. template<typename T>
    36. bool Stack::stackempty()
    37. {
    38. return (this->top == -1);
    39. }
    40. //判满
    41. template<typename T>
    42. bool Stack::stackfull()
    43. {
    44. return (this->top == this->size-1);
    45. }
    46. //入栈
    47. template<typename T>
    48. void Stack::push(T data)
    49. {
    50. if(stackfull())
    51. {
    52. cout << "栈已满" << endl;
    53. return;
    54. }
    55. this->top++;
    56. this->data[this->top] = data;
    57. }
    58. //出栈
    59. template<typename T>
    60. void Stack::pop()
    61. {
    62. if(stackempty())
    63. {
    64. cout << "栈为空" << endl;
    65. return;
    66. }
    67. this->top--;
    68. }
    69. //遍历
    70. template<typename T>
    71. void Stack::show()
    72. {
    73. if(stackempty())
    74. {
    75. cout << "栈为空" << endl;
    76. return;
    77. }
    78. for(int i=this->top;i>=0;i--)
    79. {
    80. cout << this->data[i] << " " ;
    81. }
    82. cout << endl;
    83. }
    84. int main()
    85. {
    86. Stack <int>s;
    87. //判空测试
    88. cout << s.stackempty() << endl;
    89. s.push(25);
    90. s.push(77);
    91. s.push(12);
    92. s.push(46);
    93. //入栈测试
    94. s.push(81);
    95. s.push(3);
    96. s.show();
    97. //出栈测试
    98. s.pop();
    99. s.pop();
    100. //判满测试
    101. cout << s.stackfull() << endl;
    102. //遍历测试
    103. s.show();
    104. return 0;
    105. }

    2、写一个char类型的字符数组,对该数组访问越界时抛出异常,并做处理。

    1. #include
    2. #include
    3. using namespace std;
    4. void fun(char arr[],int i)
    5. {
    6. int len = strlen(arr);
    7. if(i>len)
    8. {
    9. throw char(1);
    10. }
    11. if(i<0)
    12. {
    13. throw char(2);
    14. }
    15. }
    16. int main()
    17. {
    18. char arr[20] = "";
    19. int i = 0;
    20. cout << "输入下标" ;
    21. cin >> i;
    22. try
    23. {
    24. fun(arr,i);
    25. }
    26. catch (char res)
    27. {
    28. if(res == 1)
    29. {
    30. cout << "超过数组大小" << endl;
    31. }
    32. else if(res == 2)
    33. {
    34. cout << "输入的值小于0" << endl;
    35. }
    36. }
    37. return 0;
    38. }

    3、整理思维导图

  • 相关阅读:
    正确地进行错误处理
    四年级上册思维导图怎么绘制?简单漂亮绘制方法分享
    【Leetcode Sheet】Weekly Practice 9
    rollup打包工具核心配置详解
    【Java小白福利】Java面试、学习教程合集!
    Hive3.1.3 安装配置
    记录前后端接口使用AES+RSA混合加解密
    手动确认rabbitmq
    Leetcode—206.反转链表【简单】
    SpringBoot 服务接口限流
  • 原文地址:https://blog.csdn.net/2201_75885428/article/details/137289112