首页 > 编程知识 正文

c语言用链表实现多项式相加,c语言定义

时间:2023-05-05 09:38:50 阅读:29219 作者:4914

1. ListNode线性链表定义struct ListNode{int val; ListNode *next; ListNode(:val(0),next null ) ) listnode (intx ) :val ),next null (listnode ) intx,listnode ) )。 2 .使用2.ListNode线性链表(通过主测试) c使用new定义的变量和new未定义的变量

假设有CTest类。 当前定义两个CTest的对象

CTest t1;

CTest *t2=new CTest (;

1. 本质不同

t1是类别对象。

t2是指向类对象的指针。

2. 作用域不同

t1作用域受限于定义类对象的方法,方法结束时,类对象也由系统释放,不需要手动释放,不会安全地引起内存泄漏。

t2范围是全局的,必须在程序退出时使用delete手动释放。 系统不会自动释放。 如果忘记释放,很容易导致内存泄漏

3. 内存中存放地址不同

t1存储在堆中。

t2保存在堆栈中。

//在定义值的同时指定值,新节点listnode * L3=新列表(12; cout l3-val endl; Delete(L3; //在默认范围内定义节点ListNode vHead(3); ListNode p=vHead; 为p分配当前地址,使//p指向当前节点cout vHead.val endl; cout p.val endl; 定义//节点时,默认值为使用listnode(:val ) 0、next (null ) {}ListNode *vHead2=new ListNode (计数v head2- val ) 定义//节点时,默认分配值,listnode(:val ) 0,next (null ) {}ListNode vHead2; cout vHead2.val endl;创建一个长链表:

ListNode *L=new ListNode (; listnode*L1=newlistnode(2; listnode*L2=newlistnode(3; listnode*L3=newlistnode(4; L-next=l1; l1-next=l2; l2-next=l3; ListNode *p=L-next; while(p!=null}{coutp-valendl; p=p-next; }3. leet代码主题

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。