#include<iostream>
using namespace std;
typedef struct Node
{
int data;
struct Node *next;
}Node, *Linklist;
void Initlist(Linklist *L)
{
*L = (Linklist)malloc(sizeof(Node));//*L为头结点,L为头指针
(*L)->next = NULL;
}
void fromhead(Linklist L)
{
Node *s;
int a;
int flag = 1;
while(flag)
{
cin >> a ;
if(a != -1)
{
s = (Node *)malloc(sizeof(Node));
s->data = a;
s->next = L->next;
L->next = s;
}
else flag = 0;
}
}
void output(Linklist L)
{
Node *r;
r = L->next;
while(r != NULL)
{
cout << r->data << " ";
r = r->next;
}
}
void fromend(Linklist L)
{
Node *m, *s;
int flag = 1, a;
m = L;
while(flag)
{
cin >> a;
if(a != -1)
{
s = (Node*)malloc(sizeof(Node));
s->data = a;
m->next = s;
m = s;//m = s;m 始终指向表尾,也就是一直往后推
}
else{
flag = 0;
m->next = NULL;//表尾的next置为空
}
}
}
Node *Get(Linklist L, int i)
{
Node *p;
int j = 0;
p = L;
if(i <= 0)
return NULL;
while(j < i && (p->next != NULL))
{
p = p->next;
j++;
}
if(i == j)
return p;
else return NULL;
}
Node * Findvalue(Linklist L, int e)
{
Node *p;
p = L->next;
while(p != NULL)
{
if(p->data != e)
p = p->next;
else break;
}
return p;
}
int main()
{
int i, e;
Linklist L;
Initlist(&L);
fromhead(L);
//fromend(L);
output(L);
cin >> i >> e;//查找函数无输出 返回的是地址,可已用*将其值取出来
return 0;
}
链表的初始化 查找数据
最新推荐文章于 2024-07-25 17:45:03 发布