#include <conio.h>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
#define LEN sizeof(LNode) //定义LEN为一个节点的长度
enum BOOL { False, True }; //定义BOOL型
typedef struct node
{
int data; //数据域
struct node* next;//指向下一个节点的指针
}LNode, * LinkList;
void CreateList(LinkList& L, int n)//生成一个单链表 后插法
{
/*
LinkList r = L;
LinkList p; //如果这样写会报错0Xccccccc位置写入权限冲突;应该将L = new LNode 写在LinkList r = L 后面,
L = new LNode; //因为一开始并未给指针L new一个空间,L指针此时是一个空指针,赋值给r指针时,r也成了空指针,
L->next = NULL; //空指针r->next不存在,所以会报错;
*/
L = new LNode;
L->next = NULL;
LinkList r = L;//尾指针
LinkList p;
for (int i = 1; i <=n; i++)
{
p = new LNode;
cin >> p->data;
p->next = NULL; r->next = p;
r = p;
}
}
BOOL ListInsert(LinkList&L, int I, int E) { //在单链表中插入一个元素
int j = 0;
LinkList p ,s;
p = L;
while (p&&(j<I-1))
{
p = p->next; j++;
}
if (!p || j > I - 1)return False;
s = new LNode;
s->next = p->next;
p->next = s;
s->data = E;
return True;
}
BOOL ListDelete(LinkList& L, int I, int& E) { //在单链表中删除一个元素
LinkList p,r;
int j = 1;
p = L;
while (p&&(j<I-1))
{
p = p->next; j++;
}
r = p->next;
p->next = r->next;
E = r->data;
//True = (BOOL)E;
delete r;
return True;
}
写入位置0xccccccc权限冲突
最新推荐文章于 2023-11-24 16:53:54 发布