从事程序行业两年,对这些基础的东西没有好好复习,学到用时方恨少,基础不牢,地动山摇。错误之处欢迎大家指正!!!
#include <iostream>
#include "LinkList.h"
using namespace std;
/*
@autor:Hu Pinghui
@version:V1.0
@param:LinkList
@see:LinkList Class
*/
LinkList::LinkList()
{
LinkListLength = 0;
LinkListData = new int[0xffff];
}
LinkList::~LinkList()
{
delete[] LinkListData;
}
int main()
{
LinkList linklist;
char ch=0;
cout << "Input the element of the Linklist:" << flush;
while(ch!='\n')
{
cin >> linklist.LinkListData[linklist.LinkListLength++];
ch = getchar();
}
linklist.InitalLinkList(&linklist);
linklist.CreateLinkList(&linklist, linklist.LinkListData, linklist.LinkListLength);
linklist.LinkListTraversal(&linklist);
cout << "Linklist length:" << flush;
cout << linklist.LinkListLength << endl;
cout << "Linklist element:" << flush;
for (int loop1 = 0; loop1 < linklist.LinkListLength; loop1++)
cout << linklist.LinkListData[loop1] <<" "<< flush;
cout << endl;
}
void LinkList::InitalLinkList(LinkList *linklist)
{
linklist = (LinkList*)malloc(sizeof(LinkList));
if (NULL == linklist)
{
std::cout << "not enough space!" <<endl;
return;
}
linklist->data = 0;
linklist->node = NULL;
return;
}
void LinkList::CreateLinkList(LinkList* linklist, int* InDta, int DataNum)
{
LinkList* CurrentNode = (LinkList*)linklist;
LinkListData = new int[DataNum];
for (int loop1 = 0; loop1 < DataNum; loop1++)
{
CurrentNode->data = InDta[loop1];
if (DataNum - 1 > loop1)
{
CurrentNode->node = (LinkList*)malloc(sizeof(LinkList));
CurrentNode = CurrentNode->node;
}
}
CurrentNode->node = NULL;
}
void LinkList::LinkListTraversal(LinkList* linklist)
{
LinkList* CurrentNode = linklist;
int ListLength=0;
while (CurrentNode)
{
LinkListData[ListLength++] = CurrentNode->data;
CurrentNode= CurrentNode->node;
}
LinkListLength = ListLength;
}
#pragma once
class LinkList
{
private:
int data;
LinkList* node;
public:
LinkList();
~LinkList();
int LinkListLength = 0;
int* LinkListData;
void InitalLinkList(LinkList *linklist);
void CreateLinkList(LinkList *linklist,int *InDta,int DataNum);
void LinkListTraversal(LinkList *linlist);
};