C++(五)LinkList单链表的实现

知识虽然是书上的,但代码是一个字一个字自己敲的,保证正确!
以下是单链表创建、插入的简单实现,上代码

#include <cstddef>
#include<malloc.h>
#include <iostream>
#define ElemType int
#define Maxsize 20
using namespace std;

typedef struct  Lnode{
	ElemType data;
	struct Lnode* link;						//next linklist prt = link;
}*LinkList;


int Insert(Lnode *p,Lnode *addptr,ElemType item)	//新数据插入到p后面,新节点名为next
{
	//Lnode* temp;							//声明temp是新加入节点的指针
	//temp = (Lnode*)malloc(sizeof(Lnode));
	if (addptr == NULL)
		return 0;
	else addptr->data = item;					//item是新加入节点数据
	addptr->link = p->link;					//先连上旧后继
	p->link = addptr;							//再取代p的旧后继
	//next = temp;
	return 1;
}


int main() {
	Lnode* headptr;//申请头节点指针L1
	int adder = 314;
	headptr = (Lnode*)malloc(sizeof(Lnode));
	Lnode* L1;
	L1 = (Lnode*)malloc(sizeof(Lnode));
	//L1 = NULL;
	Insert(headptr, L1, adder);
	
	/*试验一下如何检验错误,在仅仅使用很初级的函数的情况下
	//大家可略过不看这一段灰色字体
	while (!Insert(headprt, L1, adder)) {
		cout << "error";
		break;
	
	}//subfun return 0->error
	*/

	cout << "L1->data=" << L1->data<<endl;
	Lnode* L2;

	L2 = (Lnode*)malloc(sizeof(Lnode));
	Insert(headptr, L2, 628);
	cout << "L2->data="<<L2->data<<endl;
	cout << "L2->link->data=" << L2->link->data << endl;
}

总结:书上的代码也不一定全对,还需要自己练习练习并做修改。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值