异型链表
来源:互联网 发布:淘宝代充话费 编辑:程序博客网 时间:2024/04/29 03:59
异型链表(每个节点中类型都不相同)案例如下:
#include"mainwindow.h"
#include<QApplication>
#include<QPushButton>
#include<QLabel>
//异型链表
classbase
{
public:
virtual void show()=0;
};
classnode
{
public:
base*p; //数据域
node*pNext;//指针域
};
voidshowall(node*phead)
{
while(phead!=NULL)
{
phead->p->show();
phead=phead->pNext;
}
}
node*add(node*phead,base*p)//改变一个指针需要二级指针,否则需要返回值并赋值
{
if(phead==NULL)
{
//phead=p;
node*px=newnode;//开辟节点
px->pNext=NULL;//最后一个节点为空
px->p=p;//存储传过来的指针
phead=px;//连接
returnphead;
}
else
{
node*pbak=phead;//保存头结点地址
while(phead->pNext!=NULL)//遍历到最后一个节点
{
phead=phead->pNext;
}
node*px=newnode;//开辟就诶点
px->pNext=NULL;//最后一个节点为空
px->p=p;//存储传过来的指针
phead->pNext=px;//连接这个就诶点
returnpbak;
}
}
classbutton:publicbase
{
public:
QPushButtonw;
voidshow()
{
w.show();
}
};
classwindow:publicbase
{
public:
MainWindow w;
voidshow()
{
w.show();
}
};
class label:publicbase
{
public:
QLabel w;
voidshow()
{
w.show();
}
};
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
node*phead=NULL;//指针必须初四化
buttonb1,b2,b3;
windoww1,w2,w3;
labell1,l2,l3;
phead=add(phead,&b1);
phead=add(phead,&w1);
phead=add(phead,&l1);
showall(phead);
returna.exec();
}
intmain2(intargc,char*argv[])
{
QApplicationa(argc,argv);
node*phead;
buttonb1,b2,b3;
windoww1,w2,w3;
labell1,l2,l3;
nodenode1,node2,node3,node4;
phead=&node1;
node1.pNext=&node2;
node2.pNext=&node3;
node3.pNext=&node4;
node4.pNext=NULL;//串联起来
node1.p=&b1;
node2.p=&w1;
node3.p=&l1;
node4.p=&b2;
showall(phead);
returna.exec();
}
- 异型链表
- 异型窗体
- 异型窗体设计
- UpdateLayeredWindow 绘制异型窗口
- 异型窗体绘制
- NYOJ 709 异型卵
- 异型卵问题
- 用c#创建异型窗口
- 编程实现[异型窗体] 续
- 如何创建异型焊盘
- 特大异型建筑三维建模
- 部分赋值和异型赋值
- Allegro异型焊盘制作
- UpdateLayeredWindow方式实现异型窗口
- Swing做出异型登录窗口
- 在VFP中制做异型窗口
- 同源异型框与局部联配
- 北京非一卡通公司异型卡遭禁
- java RuntimeException运行时异常
- Hibernate搭建学习
- 解决 DOS下cmd命令界面 内容不能完全显示问题
- 关于php资料免费分享
- Applause,用低科技手段解决高科技问题的众包测试团
- 异型链表
- Dubbo远程调用服务框架原理与示例 - 沐风山
- 同时支持手机号、用户名、邮箱登录
- HTTP 协议详解
- 行业发展的方向是哪里?
- 630说明解析
- poj1002 487-3279(哈希)
- 走近WSH
- 三极管的电平转换及驱动电路分析