链表插入删除
来源:互联网 发布:f35知乎 编辑:程序博客网 时间:2024/05/01 20:22
#include <iostream.h>
#include <stdlib.h>
typedef struct Node
{
char data;
struct Node *next;
}Node, *LinkList;
void CreateList(LinkList &head) //创建链表
{
Node *s, *p;
char data;
head = (Node *)malloc(sizeof(Node));
head->next = NULL;
p = head;
while(1)
{
cout << "请输入data:(q退出)" << endl;
cin >> data;
if(data == 'q')
{
break;
}
s = (Node *)malloc(sizeof(Node));
s->next = NULL;
s->data = data;
p->next = s;
p = s;
}
}
int DeleList(LinkList &head, int i, char *e) //删除第i个节点,并把节点的值用e返回
{
Node *p, *q;
p = head->next;
int j = 1;
while(p && j < i-1)
{
p = p->next;
j++;
}
if(!p || j > i-1)
{
return -1;
}
q = p->next;
p->next = q->next;
*e = q->data;
free(q);
return 1;
}
void display(Node *head)
{
Node *p;
p = head->next;
while(p != NULL)
{
cout << p->data << " ";
p = p->next;
}
cout << endl;
}
int InsertList(LinkList &head, int i, char e) // 在第i个位置插入值为e的一个新节点
{
LinkList p, s;
int j = 1;
p = head;
while(p && j < i)
{
p = p->next;
j++;
}
if(!p || j > i)
{
cout << "i的位置不存在" << endl;
return -1;
}
s = (LinkList)malloc(sizeof(Node));
s->data = e;
s->next = p->next;
p->next = s;
return 1;
}
int main()
{
LinkList head;
char e;
CreateList(head);
display(head);
DeleList(head, 3, &e);
display(head);
InsertList(head,5,'m');
display(head);
return 1;
}
- 链表插入删除
- 链表插入删除
- 链表插入删除
- 链表的插入、删除
- 双向链表插入删除
- 链表插入删除操作
- 链表插入、删除算法
- 链表的插入、删除
- 链表的建立、插入和删除
- 链表自实现:插入,删除
- 链表的建立插入与删除
- 链表的建立、插入和删除
- 链表插入、删除学习笔记
- 双向链表实现 插入删除
- 链表的创建,插入,删除
- 链表的创建,插入,删除,逆序
- 链表的创建、插入、删除操作
- 链表的插入 删除 排序 倒叙
- 我写的
- 与愚人节有关的无聊事——QQ伪装
- Android的概括介绍
- 链表
- 各种数据库的JDBC驱动下载及连接字符串URL写法
- 链表插入删除
- C++笔试题
- Linux && Unix
- 原创:Jquery入门详解
- 关于求素数的循环体
- css(二)
- [分享] 英文写作基本注意事项
- [分享] 写文之前,静下来看看!
- 好难啊