- 定义结构体
typedef struct LinkedNode{
int data;
LinkedNode *next;
}LinkedNode, *LinkedList;
- 初始化
LinkedList initLinkedListHaveHead() {
LinkedList list = (LinkedNode *)malloc(sizeof(LinkedNode));
list -> next = NULL;
return list;
}
- 判空
bool isEmptyHaveHead(LinkedList l) {
return l -> next == NULL;
}
- 遍历打印
void haveHeadPrint(LinkedList list) {
LinkedNode *node = list -> next;
int i = 0;
while (node != NULL) {
cout << "data" << i << ":" << node -> data << "\n" << endl;
node = node -> next;
i++;
}
}
- 第一个位置插入
bool haveHeadInsertToFirst(LinkedList &list, int data) {
if(list == NULL) {
return false;
}
LinkedNode *node = (LinkedNode *)malloc(sizeof(LinkedNode));
node -> data = data;
node -> next = list-> next;
list -> next = node;
return true;
}
- 按位查找
LinkedNode* haveHeadGetByIndex(LinkedList &list, int index) {
if (isEmptyHaveHead(list)) {
return NULL</