數據結構1-單鏈表的頭插法、尾插法建立及遍歷
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<cstdlib>
#include<cstring>
using namespace std;
//定義單鏈表結構體
typedef struct LNode
{
int data;
struct LNode *next;
} *LinkList;
//頭插法建立單鏈表
void createLinkList(LinkList &Head,int a[],int n)
{
Head = (LinkList)malloc(sizeof(LNode));
Head->next = NULL;
LNode *s;
for(int i = 0; i < n; i++)
{
s = (LNode *)malloc(sizeof(LNode));
s->data = a[i];
s->next = Head->next;
Head->next = s;
}
}
//尾插法建立單鏈表
void createEndLinkList(LinkList &endHead,int a[],int n)
{
endHead = (LinkList)malloc(sizeof(LNode));
endHead->next = NULL;
LNode *s,*endLNode;
endLNode = endHead;
for(int i = 0; i < n; i++)
{
s = (LNode *)malloc(sizeof(LNode));
s->data = a[i];
endLNode->next = s;
endLNode = s;
}
s->next = NULL;
}
//遍歷輸出單鏈表
void printLinkList(LinkList &Head)
{
LNode *s = Head->next;
while(s)
{
printf("%d\n",s->data);
s = s->next;
}
}
int main()
{
LinkList Head;
int a[] = {3,4,5,6,7,8,9};
createLinkList(Head,a,7);
printLinkList(Head);
LinkList endHead;
createEndLinkList(endHead,a,7);
printLinkList(endHead);
}