//
#include <iostream>
#include <stdio.h>
#include <malloc/malloc.h>
#define OK 1
#define ERROR 0
//单向链表的定义,包括数据域和指针域
typedef int ElemType;
typedef int Status;
typedef struct node {
ElemType data;
struct node *next;
}LNode,*LinkList;
//typedef LNode *LinkList;
//头插入创建链表
Status CreateLinkList_Head(LinkList &L,int n)
{
LinkList p;
int i=0;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
printf("请输入头插入链表元素:\n");
for(i=n;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode));
if(!p) {
return ERROR;
}else{
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
return OK;
}
//尾插入创建链表
Status CreateLinkList_Tail(LinkList &L,int n)
{
LinkList p = NULL;
LinkList q = NULL;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
q=L;
printf("请输入尾插入链表元素:\n");
for(int i=0;i<n;i++)
{
p=(LinkList)malloc(sizeof(LNode));
if(!p) return ERROR;
scanf("%d",&p->data);
q->next = p;
q = p;
q->next = NULL;
}
return OK;
}
//打印链表内容
Status printLinkListContent(LinkList L) {
LinkList p;
p=L->next;
printf("链表内容为:");
while(p) {
printf("%d ",p->data);
p = p->next;
}
printf("\n");
return OK ;
}
int main(int argc, const char * argv[]) {
LinkList aList;
int cord;
do {
printf("\n ***** Menu ***** \n");
printf(" 1. 头插入建立链表 \n");
printf(" 2. 尾插入建立链表 \n");
printf("---------------------------------------\n");
printf("请输入您的选择(1,2) \n");
scanf("%d",&cord);
switch (cord) {
case 1:
{
CreateLinkList_Head(aList, 5);
printLinkListContent(aList);
}
break;
case 2:
{
CreateLinkList_Tail(aList, 5);
printLinkListContent(aList);
}
break;
default:
break;
}
} while (cord <= 4);
return 0;
}
数据结构_链表
最新推荐文章于 2024-04-27 18:39:36 发布