#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_H(LinkList& L, int n) {
InitList(L);
cout << "请输入结点数据元素:" << endl;
for (int i = 0; i < n; i++) {
LinkList p = new Lnode;
cin >> p->data;
p->next = L->next;
L->next = p; //p指向首元结点
}
}
void PrintElem(LinkList& L, int n) {
LinkList p = L->next;
while (p) {
cout << p->data << " ";
p = p->next;
}
}
//判断链表是否为空链表
Status ListEmpty(LinkList& L) {
if (L->next) return FALSE;
else return TRUE;
}
void IsListEmpty(LinkList& L) {
Status index = ListEmpty(L);
if (index) cout << "链表为空!" << endl;
else cout << "链表非空!" << endl;
}
void main() {
LinkList L;
int n;
cout << "请输入元素的个数:" << endl;
cin >> n;
CreateList_H(L, n);
cout << "请判断链表是否为空:" << endl;
IsListEmpty(L);
cout << "输出单链表中的数据元素:" << endl;
PrintElem(L, n);
}
前插法创建单链表(自我练习)
最新推荐文章于 2023-11-03 19:35:58 发布