c++-在类中使用单链表,对象该怎么放到节点中?

问题描述

在类中使用单链表,对象该怎么放到节点中?

我用的是基本的单链表思想,Student是我的类,我把“Student next;”直接写在Student类里面,但是我不知道怎么把对象放到节点上。这是我写的类的单链表:
/*Student *L, *s, *r;
L = (Student *) malloc (sizeof(Student));
r = L;
s = (Student *) malloc (sizeof(Student));
s->/
这里不知道该写什么?*/ = stu[0];
r->next = s;
r = s;
r->next = NULL;*/
我不明白用什么来存储对象?

完整的代码:
#include
#include
#include
using namespace std;

//学生类的定义
class Student{

public: //外部接口,公有成员函数
Student(int stuNumber,string stuName,string stuGender,string stuSchool = "USST"); //构造函数
void showStudent();

Student *next;
private: //私有数据成员
int number; //学号
string name; //姓名
string gender; //性别
string school; //学校
};

//学生类成员函数的具体实现
Student::Student(int stuNumber,string stuName,string stuGender,string stuSchool){
number = stuNumber;
name = stuName;
gender = stuGender;
    school = stuSchool;

}

inline void Student::showStudent(){
cout<<"t"<<number<<"t"<<name<<"t"<<gender<<"t"<<school<<endl;
}

//主函数
int main(){
cout<<"t学号tt姓名t性别t学校"<<endl;

//对象数组
Student stu[3] = {Student(1219010635,"孟航","男"),Student(1219010623,"余志权","男"),Student(1219010627,"闵闯","男")};
for (int i = 0;i < 3;i ++){
    stu[i].showStudent();
}

/*Student *L, *s, *r;  //类的单链表如何实现?
L = (Student *) malloc (sizeof(Student));
r = L;
s = (Student *) malloc (sizeof(Student));
s->/*这里不知道该写什么?*/ = stu[0];
r->next = s;
r = s;*/

return 0;

}

解决方案

你是想 把这个三个学生穿起来吧, 直接 l->next = stu[0];
stu[0].next = stu[1];
stu[1].next = stu[2];
stu[2].next = null;

时间: 2024-09-19 20:41:21

c++-在类中使用单链表,对象该怎么放到节点中?的相关文章

c++与递归 中的单链表搜索指定值

问题描述 c++与递归 中的单链表搜索指定值 在以f为头指针的单链表中搜索其值等于给定值x的结点 void Search(LinkNode *f,T& x){ if (f==NULL) return; else if (f->date==x)return f; else Search(f->link,x); } 课本上的代码, 返回值是空类型 与return f 不是相互矛盾吗? 解决方案 这代码是错的,void类型,不能return f; 解决方案二: 代码不对,编译肯定通不过, 类

link中是不是单链表不能逆序输出?只有双向链表才可以,这么说正确么?

问题描述 link中是不是单链表不能逆序输出?只有双向链表才可以,这么说正确么? link中是不是单链表不能逆序输出?只有双向链表才可以,这么说正确么? 解决方案 也可以啊,再定义一个堆栈,遍历链表,将值放进去,然后再输出堆栈.

指针-c++中创建单链表的问题。

问题描述 c++中创建单链表的问题. 最后一句p=q.书上写的是将p指针后移,指向后继结点q. 怎么是指针呢?难道不是直接q把覆盖了吗? 解决方案 p和q都是指针变量,赋值只是指针之间的赋值,和指针指向的内容没有关系.

编程-请问c#中,怎样把dategridview的列名放到listbox中去?

问题描述 请问c#中,怎样把dategridview的列名放到listbox中去? 请问c#中,怎样把dategridview的列名放到listbox中去? 求编程代码 解决方案 foreach (var item in datagridview.columns) { listbox1.Items.add(item.text); } 解决方案二: 不是回答过了么?如果代码可行,请及时采纳,谢谢 解决方案三: 代码比较简单,测试确认OK. foreach (DataGridViewColumn i

关于获取gridview中的某一列的值 放到textbox中 谢谢~~~

问题描述 假设girdview里面有这些ID姓名性别单位单位电话手机详细信息4姓名2查看详细信息3姓名1性别1工作单位1单位电话1手机1查看详细信息17姓名15查看详细信息5姓名3查看详细信息我要获取姓名那一列的值放在TEXTBOX里面应该怎么弄?谁来~~~~~COMEON 解决方案 解决方案二:GridView编辑时获取编辑框中的值stringquantity=((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text;p

关于Java单例对象同步问题

单例对象(Singleton)是一种常用的设计模式.在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在.正是由于这个特点,单例对象通常作为程序中的存放配置信息的载体,因为它能保证其他对象读到一致的信息.例如在某个服务器程序中,该服务器的配置信息可能存放在数据库或文件中,这些配置数据由某个单例对象统一读取,服务进程中的其他对象如果要获取这些配置信息,只需访问该单例对象即可.这种方式极大地简化了在复杂环境下,尤其是多线程环境下的配置管理,但是随着应用场景的不同,也可能带来一些同步

java单链表常用操作

总结提高,与君共勉 概述. 数据结构与算法亘古不变的主题,链表也是面试常考的问题,特别是手写代码常常出现,将从以下方面做个小结 [链表个数] [反转链表-循环] [反转链表-递归] [查找链表倒数第K个节点] [查找链表中间节点] [判断链表是否有环] [从尾到头打印单链表-递归] [从尾到头打印单链表-栈] [由小到大合并有序单链表-循环] [由小到大合并有序单链表-递归] 通常在Java中这样定义单链表结构 [java] view plain copy <span style="fon

用C语言计算一个单链表的长度,单链表的定义如下:要求使用递归,不得出现循环。

问题描述 用C语言计算一个单链表的长度,单链表的定义如下:要求使用递归,不得出现循环. 用C语言计算一个单链表的长度,单链表的定义如下:要求使用递归,不得出现循环. 解决方案 如果链表有环,永远算不出来 只能假定,这个链表不是环形链表,也没有环 简单事情用递归做是低效率的,即便学习递归,也是不必要的 递推, 可以用递归实现 也可以用迭代实现 前者无循环,后者有 解决方案二: int listLength(List *l) { if(l->next!=NULL) { l=l->next; ret

反转单链表的几种方法

最近试着做一些笔试面试题,既是为来年找工作做准备,也可以做为数据结构和算法的复习笔记,就陆续发在这里吧,有需要的朋友可以看一下,如果有没考虑周全的地方欢迎指正. 先来一个最常见的题目:反转单链表.假设单链表的数据结构定义如下: typedef struct LNode {     int     data;     struct LNode    *next; }LNode, *LinkedList; 并且这个单链表有一个头指针list指向第一个结点,最后一个结点指向NULL,很容易理解. 最容