双向链表
来源:互联网 发布:剑三正太捏脸数据南风 编辑:程序博客网 时间:2024/05/20 06:29
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int date;
struct node *next;
struct node *prior;
}node;
void inlist1(node *l)
{
node *s,*p=l;
int a;
printf("请输入链表值l个数:");
scanf("%d",&a);
printf("请输入链表值:");
for(int i=1;i<=a;i++)
{
int e;
scanf("%d",&e);
s=(node *)malloc(sizeof(node));
s->date=e;
p->next=s;
s->prior=p;
p=s;
}
p->next=l;
l->prior=p;
}
void sert(node *l)
{
node *s,*p=l,*r;
int e,i,k=0;
printf("请输入插入元素:");
scanf("%d",&e);
printf("请输入插入位置:");
scanf("%d",&i);
while(p->next!=l&&k<i-1)
{
p=p->next;
k++;
}
r=p->next;
s=(node *)malloc(sizeof(node));
s->date=e;
s->next=p->next;
p->next=s;
s->prior=p;
r->prior=s;
p=l;
while(p->next!=l)
{
p=p->next;
printf("%d",p->date);
}
printf("\n");
}
void delist(node *l)
{
node *p;
int i,k=0;
printf("请输入删除节点i:");
scanf("%d",&i);
p=l;
while(p->next!=l&&k<i)
{
p=p->next;
k++;
}
p->prior->next=p->next;
p->next->prior=p->prior;
p=l;
while(p->next!=l)
{
p=p->next;
printf("%d",p->date);
}
printf("\n");
}
int main()
{
node *l=(node *)malloc(sizeof(node));
inlist1(l);
sert(l);
delist(l);
return 0;
}
#include<stdlib.h>
typedef struct node
{
int date;
struct node *next;
struct node *prior;
}node;
void inlist1(node *l)
{
node *s,*p=l;
int a;
printf("请输入链表值l个数:");
scanf("%d",&a);
printf("请输入链表值:");
for(int i=1;i<=a;i++)
{
int e;
scanf("%d",&e);
s=(node *)malloc(sizeof(node));
s->date=e;
p->next=s;
s->prior=p;
p=s;
}
p->next=l;
l->prior=p;
}
void sert(node *l)
{
node *s,*p=l,*r;
int e,i,k=0;
printf("请输入插入元素:");
scanf("%d",&e);
printf("请输入插入位置:");
scanf("%d",&i);
while(p->next!=l&&k<i-1)
{
p=p->next;
k++;
}
r=p->next;
s=(node *)malloc(sizeof(node));
s->date=e;
s->next=p->next;
p->next=s;
s->prior=p;
r->prior=s;
p=l;
while(p->next!=l)
{
p=p->next;
printf("%d",p->date);
}
printf("\n");
}
void delist(node *l)
{
node *p;
int i,k=0;
printf("请输入删除节点i:");
scanf("%d",&i);
p=l;
while(p->next!=l&&k<i)
{
p=p->next;
k++;
}
p->prior->next=p->next;
p->next->prior=p->prior;
p=l;
while(p->next!=l)
{
p=p->next;
printf("%d",p->date);
}
printf("\n");
}
int main()
{
node *l=(node *)malloc(sizeof(node));
inlist1(l);
sert(l);
delist(l);
return 0;
}
0 0
- SzNOI 双向约瑟夫(双向链表)
- 双向链表&&堆栈
- 双向链表
- 使用双向链表
- 双向链表
- 双向循环链表
- 双向循环链表
- 双向链表
- 实现双向链表
- 双向循环链表
- 建立双向链表
- 双向链表
- 双向链表
- 双向循环链表
- 双向链表
- 链表-双向链表
- 双向链表
- 双向动态链表
- CodeForces 131D Subway [tarjan+最短路]
- 循环链表
- 物联网系统——远征军的战略图
- KMP模式匹配算法浅析[转]
- javaweb学习总结(四)——Http协议
- 双向链表
- sessionFactory为空之spring依赖注入
- Haoop , Spark安装实例教程--Spark安装
- 最优化方法—一维搜索
- 安全的本质
- 4.2、从RDBMS向Neo4j导数据【专题四:数据处理】
- Light OJ 1245 - Harmonic Number (II) 【规律】
- Jenkins部署Maven项目时提示找不到JDK问题的解决方案
- Target/Action 设计模式