#include "stdafx.h"
#include"iostream"
using namespace std;
typedef struct _node{
int value;
struct _node *next;
}Node;
typedef struct _list{
Node* head;
}List;
void add(List* pList, int number);
void print(List* pList);
int _tmain(int argc, _TCHAR* argv[])
{
List list;
list.head = NULL;
int number;
do{
scanf_s("%d", &number);
if (number != -1){
add(&list, number);
}
} while (number != -1);
print(&list);
scanf_s("%d", &number);
//链表元素的查询
Node* p;
int isflag = 0;
for (p = list.head; p; p = p->next){
if (p->value == number){
isflag = 1;
printf("找到了");
break;
free(p);
}
}
if (!isflag){
printf("没有找到");
}
//链表元素的的删除
Node* q;
for (q == NULL,p = list.head; p; q=p,p = p->next){
if (p->value == number){
if (q){
q->next = p->next;
}
else{
list.head = p->next;
}
free(p);
break;
}
}
//链表的删除
for (p = list.head; p; p = q){
q = p->next;
free(p);
}
}
void add(List* pList, int number){ //生成链表
Node* p = (Node*)malloc(sizeof(Node));
p->value = number;
p->next = NULL;
Node* last =pList -> head;
if (last){
while (last->next != NULL){
last = last->next;
}
last->next = p;
}
else{
pList -> head = p;
}
}
void print(List* pList){
Node* p; //打印链表
for (p = pList->head; p; p = p->next){
printf("%d\t", p->value);
printf("\n");
}
}
#include"iostream"
using namespace std;
typedef struct _node{
int value;
struct _node *next;
}Node;
typedef struct _list{
Node* head;
}List;
void add(List* pList, int number);
void print(List* pList);
int _tmain(int argc, _TCHAR* argv[])
{
List list;
list.head = NULL;
int number;
do{
scanf_s("%d", &number);
if (number != -1){
add(&list, number);
}
} while (number != -1);
print(&list);
scanf_s("%d", &number);
//链表元素的查询
Node* p;
int isflag = 0;
for (p = list.head; p; p = p->next){
if (p->value == number){
isflag = 1;
printf("找到了");
break;
free(p);
}
}
if (!isflag){
printf("没有找到");
}
//链表元素的的删除
Node* q;
for (q == NULL,p = list.head; p; q=p,p = p->next){
if (p->value == number){
if (q){
q->next = p->next;
}
else{
list.head = p->next;
}
free(p);
break;
}
}
//链表的删除
for (p = list.head; p; p = q){
q = p->next;
free(p);
}
}
void add(List* pList, int number){ //生成链表
Node* p = (Node*)malloc(sizeof(Node));
p->value = number;
p->next = NULL;
Node* last =pList -> head;
if (last){
while (last->next != NULL){
last = last->next;
}
last->next = p;
}
else{
pList -> head = p;
}
}
void print(List* pList){
Node* p; //打印链表
for (p = pList->head; p; p = p->next){
printf("%d\t", p->value);
printf("\n");
}
}