Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)-架构x86_64的未定义符号:_C++_Algorithm_Data Structures - Fatal编程技术网

C++ clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)-架构x86_64的未定义符号:

C++ clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)-架构x86_64的未定义符号:,c++,algorithm,data-structures,C++,Algorithm,Data Structures,CellType的声明有什么问题?这是链表的一个实现。listHead是一个新的空链接列表。由于listHead在代码的其他部分中的用法,我试图将其声明为全局变量 #include <iostream> typedef struct CellType* Position; typedef int ElementType; struct CellType{ ElementType value; Position next; }; class List{ public

CellType的声明有什么问题?这是链表的一个实现。listHead是一个新的空链接列表。由于listHead在代码的其他部分中的用法,我试图将其声明为全局变量

#include <iostream>

typedef struct CellType* Position;
typedef int ElementType;
struct CellType{
    ElementType value;
    Position next;
};

class List{
public:
    CellType* listHead;
    void makeNull();    //Create a new list
    void insertList(ElementType x, Position p); //Insert element to the list
    void deleteList(Position p);    //delete an element at position p
    Position first();   //get Position of first
    Position end();     //get Position of end
    Position next(Position p);  //get position of next
    void printList();   //print list
};

void List::makeNull(){
    listHead = new CellType;
    listHead -> next = NULL;
}

void List::insertList(ElementType x, Position p){
    Position temp;
    temp = p -> next;
    p->next = new CellType;
    p->value = x;
    p->next->next = temp;
}

void List::deleteList(Position p){
    p->next = p->next->next;
}

Position List::first(){
    return (listHead);
}

Position List::end(){
    Position p;
    p = listHead;
    while(p->next != NULL){
        p = p->next;
    }
    return(p);
}

Position List::next(Position p){
    return(p->next);
}
#包括
类型定义结构单元类型*位置;
typedef int元素类型;
结构单元类型{
元素类型值;
下一个位置;
};
班级名单{
公众:
CellType*列表头;
void makeNull();//创建一个新列表
void insertList(ElementType x,位置p);//将元素插入列表
void deleteList(位置p);//删除位置p处的元素
Position first();//获取第一个的位置
Position end();//获取端点的位置
下一个位置(位置p);//获取下一个位置
void printList();//打印列表
};
void List::makeNull(){
listHead=新单元类型;
listHead->next=NULL;
}
无效列表::插入列表(元素类型x,位置p){
职位温度;
temp=p->next;
p->next=新单元类型;
p->value=x;
p->next->next=温度;
}
作废列表::删除列表(位置p){
p->next=p->next->next;
}
职位列表::first(){
返回(列表头);
}
职位列表::结束(){
位置p;
p=列表头;
while(p->next!=NULL){
p=p->next;
}
回报率(p);
}
职位列表::下一个(职位p){
返回(p->next);
}

此问题与操作系统版本更新和g++版本有关。我正在使用MacOS 10.15.5


使用g++再次编译,然后成功链接。

这是整个程序给您的错误吗?其中是
int main()
在上面的代码中没有全局
listHead
(这听起来真是个糟糕的主意)。另外,问题标题似乎与问题内容无关。我使用终端的错误代码作为标题。这里粘贴的代码是整个程序的一部分。我试图实现链表。该方法来自IIT Madras讲座。我了解到抽象数据类型的实现并不涉及内部技术,那么为什么需要全局声明呢。只有类方法使用此listHead抽象类型。