#include<iostream>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE - 1
#define OVERFLOW - 2
#define MAXSIZE 100
#define SIZE 4
typedef int Status;
typedef struct Lnode {
int data;
struct Lnode* next;
}LNode, * LinkList;
Status InitList(LinkList& L) {
L = new Lnode;
L->next = NULL;
return OK;
}
//后插法创建单链表
void CreateList_R(LinkList& L, int n) {
InitList(L);
LinkList r = L;
for (int i = 0; i < n; i++) {
LinkList p = new Lnode;
cin >> p->data;
p->next = r->next;
r->next = p;
r = p;
}
}
Status InsertElem(LinkList& L, int i) {
LinkList p = new Lnode;
cout << "请输入插入的结点元素:" << endl;
cin >> p->data;
LinkList q = L;
int j = 1;
while (q && j < i) {
q = q->next;
j++;
}
if (q && j > i) return ERROR;
else {
p->next = q->next;
q->next = p;
}
}
void printElem(LinkList& L, int i) {
Status res = InsertElem(L, i);
if (res) {
LinkList p = L->next;
cout << "打印单链表中的所有元素:" << endl;
while (p) {
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
else cout << "插入的下标有误!" << endl;
}
int main() {
LinkList L;
int n;
cout << "请输入单链表所插入的元素的个数:" << endl;
cin >> n;
CreateList_R(L, n);
int i;
cout << "请输入需要插入的元素下标:" << endl;
cin >> i;
printElem(L, i);
}
单链表的插入(自我练习)
最新推荐文章于 2024-07-23 15:46:40 发布