#include<stdio.h> #include<stdlib.h> #include using namespace std; typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode,*LinkList;

int InitList(LinkList &L) { L = new LNode; L->next = NULL; return 1; }

int ListInsert(LinkList &L, int i, ElemType e) { LNode *p = L; int j = 0; while (p && j < i - 1) { p = p->next; j++; } if (!p || j > i - 1) { return 0; } LNode *newNode = new LNode; newNode->data = e; newNode->next = p->next; p->next = newNode; return 1; }

void CreatList(LinkList &L, int n) { L = new LNode; L->next = NULL; LNode *p = L; for (int j = 0; j < n; j++) { LNode *newNode = new LNode; cin >> newNode->data; newNode->next = p->next; p->next = newNode; p = p->next; } }

void print(LinkList L) { LNode *p = L->next; while (p != NULL) { cout << p->data << ' '; p = p->next; } }

int main() { LinkList L = NULL; InitList(L); CreatList(L, 5); print(L); return 0; }

// 以下是修改后的代码,修复了原代码中的错误 // 1. ListInsert 函数中,正确实现插入节点的功能,找到要插入位置的前一个节点 // 2. CreatList 函数中,定义指针 p // 3. print 函数中,使用 cout 输出数据

// ... 代码同上 ...

C++ 链表代码详解:创建、插入、输出

原文地址: https://www.cveoy.top/t/topic/iS9g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录