加油其实并不难,熟悉语法,然后按照流程图来进行操作问题就是不大。问题就出现在编程语言不熟悉。新的一天加油!
-----------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------
//库函数头文件包含
#include <iostream>
using namespace std;
//函数状态码定义
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef int ElemType; //假设线性表中的元素均为整型
typedef struct LNode //定义节点的结构
{
ElemType data;
struct LNode *next;
}LNode,*LinkList; //这个节点的别名
/*
LNode是给这个结构起的一个名字,可以用LNode去定义变量,
在这里已经和int/char这样的关键字一样了。
*LinkList是指向这个结构的一个指针,也可以去定义变量,
定义出来的是指向这个结构的指针变量。
*/
Status ListCreate_L(LinkList &L,int n) //创建链表采用尾插法,较为方便
{
LNode *rearPtr,*curPtr; //一个尾指针,一个指向新节点的指针
//L=(LNode*)malloc(sizeof (LNode));
L=new LNode; //新建一个节点L
if(!L)exit(OVERFLOW);
L->next=NULL; //先建立一个带头结点的单链表
rearPtr=L; //初始时头结点为尾节点,rearPtr指向尾巴节点
for (int i=1;i<=n;i++){ //每次循环都开辟一个新节点,并把新节点拼到尾节点后
curPtr=new LNode;//生成新结点
if(!curPtr)exit(OVERFLOW);
cin>>curPtr->data;//输入元素值
curPtr->next=NULL; //最后一个节点的next赋空
rearPtr->next=curPtr;
rearPtr=curPtr;
}
return OK;
}
int main()
{
LinkList L;
int n;
int x,k;
cin>>n; //输入链表中元素个数
if(ListCreate_L(L,n)!= OK) {
cout<<"表创建失败!!!\n";
return -1;
}
return 0;
}
-----------------------------------------------------------------------------------------------------------------------------------
Class版
#include<iostream>
using namespace std;
class List;//友元类的前置声明
class Node//节点
{
friend class List;//声明一个友元类 ,然后就可以对私有的进行操作
private:
int data; //节点中数据
Node* link; //指向下一个节点的指针
};
class List//链表
{
public:
void test();
void show();
private:
Node* first;
};
void List::test(){
Node *f=new Node();
f->data=44;
f->link=0;
first=f;
f=new Node();
f->data=72;
f->link=0;
first->link=f;
f=new Node();
f->data=210;
f->link=0;
first->link->link=f;
}
void List::show(){ //::作用域所属关系属于List这个类下的show方法
cout<<first->data<<endl
<<first-> link->data<<endl
<<first->link->link->data<<endl;
}
int main(){
List a;
a.test(); //创建了三个节点
a.show();
cout<<"ok"<<endl;
return 0;
}