注册 登录
编程论坛 数据结构与算法

链表的建立和实现

mature119 发布于 2022-09-21 20:45, 1095 次点击
#pragma once
#include<iostream>
#include<stdlib.h>
#include<fstream>
using namespace std;
typedef struct
{
    int num;
    int e;
}ElemType;

typedef struct Lnode//声明结点类型和指向结点的指针类型
{
    ElemType data;//结点的数据域
    int m;//结点的下标
    struct Lnode* next;//结点的指针域
}Lnode, * LinkList;//LinkList为指向结构体Lnode的指针类型
void ErrorMessage(const char* s)//错误处理函数
{
    cout << s << endl;
    exit(1);
}
void CreateList_H(LinkList& L, int n)
{
   
    L = new Lnode;
    L->next = NULL;//先建立一个带头结点的单链表    头插法的时间复杂度为:O(n)
    for(int i = n; i > 0; --i)
    {
        Lnode* p=new Lnode;//生成新结点p=(Lnode*)malloc(sizeof(Lnode));
        cin >> p->data;//输入元素值scanf(&p->data);
        cin >> p->m;//输入元素下标
        p->next = L->next;//插入到表头
        L->next = p;
    }
}//CreateList_H

cin >> p->data;//输入元素值scanf(&p->data);
错误提示:没有与这些操作数匹配的>>运算符
别的方式也可以建立,但是想知道一下这里怎么搞????
基础问题比较菜
2 回复
#2
apull2022-09-22 08:56
cin >> p->data; 你得给ElemType 重载>>运算符才可以
这里用
cin >> p->data.num >>  p->data.e;
#3
mature1192022-09-22 09:56
回复 2楼 apull
十分感谢
1