我用c++实现的模板单链表类.并用一个一元多项式进行测试.

最近刚看完了严蔚敏老师的数据结构教程,看的过程并没有实践,现在准备把里面讲到的主要算法,数据结构进行一遍实践..加深理解

 

这个类还有一些小问题:

      里面的一些成员函数设计的并不是很好,并不能完全体现出OO精神(有些操作,比如GetHead(),GetTail()等破坏了类的封装性)..并且做多项式加法运算时,两个操作数双方的指数必须按升冥次序输入..(其实也可以增加一个成员函数对多项式链表建立后立即进行排序).

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个用 C 语言实现单链表来保存一元多项式的代码: ```c #include <stdio.h> #include <stdlib.h> // 定义一个结构体来表示一元多项式的每一项 typedef struct node { int coef; // 系数 int exp; // 指数 struct node *next; // 指向下一个节点的指针 } Node; // 定义一个函数来创建一个新的节点 Node *new_node(int coef, int exp) { Node *node = (Node *)malloc(sizeof(Node)); node->coef = coef; node->exp = exp; node->next = NULL; return node; } // 定义一个函数来插入一个新的节点到链表中 void insert_node(Node **head, Node *node) { if (*head == NULL) { *head = node; } else { Node *p = *head; while (p->next != NULL) { p = p->next; } p->next = node; } } // 定义一个函数来打印链表中的所有节点 void print_list(Node *head) { Node *p = head; while (p != NULL) { printf("%dx^%d", p->coef, p->exp); if (p->next != NULL) { printf(" + "); } p = p->next; } printf("\n"); } int main() { Node *head = NULL; insert_node(&head, new_node(2, 3)); insert_node(&head, new_node(3, 2)); insert_node(&head, new_node(4, 1)); insert_node(&head, new_node(5, 0)); print_list(head); return 0; } ``` 这个代码实现一个单链表来保存一元多项式,每个节点表示一项,包含系数和指数两个属性。我们可以通过调用 `new_node` 函数来创建一个新的节点,然后通过调用 `insert_node` 函数来将节点插入到链表中。最后,我们可以通过调用 `print_list` 函数来打印链表中的所有节点,从而输出一元多项式的表达式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值