using namespace std
typedef char ElemType
typedef int Status
#define OK 1
#define ERROR 0
typedef struct Lnode
{
ElemType data
struct Lnode *next
}Lnode,*LinkList
void Creat_List(LinkList L)//创建单链表并输入元素
{
LinkList p,q
q=L
char ch
cout<<"请输入链表元素,并且以输碰塌孙入#表示结束!"<<endl
while(cin>>ch&&ch!='#')
{
p=new Lnode[sizeof(Lnode)]
if(!p)
{
cout<<"获取内存失败"<<endl
exit(ERROR)
}
p->data=ch//尾插法
L->next=p
L=p
}
L->next=q
}
void output_List(LinkList L)//遍历单链表(输出单链表衫漏元素)
{
LinkList p
p=L->next
if(p==L)
{
cout<<"该链表是空链表!"<<endl
exit(ERROR)
}
while(p!=L)
{
cout<<p->data<<"笑链 "
p=p->next
}
}
Status main()
{
LinkList H
H=(LinkList)malloc(sizeof(Lnode))
H->next=NULL//设置头结点为空
Creat_List(H)
output_List(H)
return 0
}//头结点有和没有都是可以的,头结点只是为了让 *** 作链表更方便,
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int date
struct node *next
}slnode,*Linklist
void creat_list(Linklist H)//创建链表,由于实参传值使L指向了一个空节点兆弊段从而成为头节点指针
{
Linklist p, p1
int n
cout<<"请输入结点数"<<endl
cin>>n
H->date=n
cout<<"请输入结点数据"<<endl
p1 = H//使p1具有了空间
for(int i=0i<ni++)
{
p=(Linklist)malloc(sizeof(slnode))
p->next = NULL
cin>>p->date
H->next = p
H=p//L指族誉向了最后节点的数据域
}
H=p1//使尾指针指向了最后节点的数据域
}
void display_list(Linklist H)//输出链表
{
cout<卜烂<"输出"<<endl
Linklist p
p = H->next
for(int i=0i<H->datei++)
{
cout<<p->date
cout <<' 'cout<<'\n'
p = p ->next
}
}
void main()
{
slnode a//a是空结构变量
Linklist p//p是指针
p = &a//p指向了一个空节点
creat_list(p)//传的是结构变量的地址
display_list(p)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)