介绍下头插法建立链表C++实现。
说明:头插法建立的链表元素顺序是和输入的顺序相反的,如果要顺序保持一致,建议用尾插法。
//LinkedList.h//
#ifndef headInsert_H
#define headInsert_H
#include<iostream>
using namespace std;
typedef int keyType;
typedef class node{
public:
keyType key;
node *next;
}LinkNode;
class operLink{
private:
LinkNode* L;
public:
//头插法
LinkNode* headInsert();
//输出链表元素
void printele(LinkNode* L);
};
//头插法
LinkNode* operLink::headInsert(){
L=(LinkNode*)malloc(sizeof(LinkNode));
L->next=NULL;
keyType ele;
cin>>ele;
while(ele!=999){
LinkNode* p=(LinkNode*)malloc(sizeof(LinkNode));
p->key=ele;
p->next=L->next;
L->next=p;
cin>>ele;
}
return L;
}
//打印链表中内容
void operLink::printele(LinkNode* L){
LinkNode* p=L->next;
while(p!=NULL){
cout<<p->key<<" ";
p=p->next;
}
}
#endif
//LinkedList.cpp//
#include "LinkedList.h"
int main(){
operLink ol;
LinkNode* L=ol.headInsert();;
ol.printele(L);
return 0;
}
已经过测试