链表基本操作的c语言编程实现,用C语言实现对单链表的基本操作 链表基本操作练习(C语言)...

导航:网站首页 >

用C语言实现对单链表的基本操作 链表基本操作练习(C语言)

用C语言实现对单链表的基本操作 链表基本操作练习(C语言)

相关问题:

匿名网友:

#include 

#include 

typedef int DataType;

typedef struct node {

DataType member;

struct node *next;

}*LinkList, *pNode;

// 初始化链表

LinkList GetEmptyList() {

LinkList head = (pNode)malloc(sizeof(struct node));

head->member = 0;

head->next = NULL;

return head;

}

// 在非增链表中插入结点

void InsertNode(LinkList head, DataType x) {

pNode p,q;

for(p = head; p->next != NULL; p = p->next) {

if(p->next->member <= x) {

q = (pNode)malloc(sizeof(struct node));

q->member = x;

q->next = p->next;

p->next = q;

return;

}

}

q = (pNode)malloc(sizeof(struct node));

q->member = x;

q->next = p->next;

p->next = q;

}

// 新结点插入为首结点

void PushNode(LinkList head, DataType x) {

pNode p = (pNode)malloc(sizeof(struct node));

p->member = x;

p->next = head->next;

head->next = p;

}

// 删除结点

int DeleteNode(LinkList head, DataType x) {

pNode p,q;

for(p = head; p != NULL; p = p->next) {

if(p->next->member == x) {

q = p->next;

p->next = q->next;

free(q);

return 1; // 成功删除member(第一个)为x的结点

}

}

return 0; // 没有找到member为x的结点

}

// 查找结点

int FindNode(LinkList head, DataType x) {

pNode p;

for(p = head->next; p != NULL; p = p->next) {

if(p->member == x) return 1; // 找到了

}

return 0; // 没有找到

}

// 销毁链表

void DestroyList(LinkList head) {

pNode q,p = head;

while(p) {

q = p;

p = q->next;

free(q);

}

head = NULL;

}

// 遍历链表

void ShowList(LinkList head) {

pNode p = head->next;

while(p != NULL) {

printf("%d ",p->member);

p = p->next;

}

printf("\n");

}

int main() {

DataType x,res;

LinkList head = GetEmptyList();

printf("输入一个整数('q' to quit): ");

while(scanf("%d",&x) == 1) {

InsertNode(head, x); // 创建非增链表

printf("输入一个整数('q' to quit): ");

}

fflush(stdin);

ShowList(head);

printf("输入待查找的整数: ");

scanf("%d",&x);

res = FindNode(head, x);

if(res) printf("找到了。\n");

else printf("没找到!\n");

printf("输入待删除的整数: ");

scanf("%d",&x);

res = DeleteNode(head, x);

if(res) printf("成功删除。\n");

else printf("没找到数据为:%d的结点!\n",x);

ShowList(head);

DestroyList(head);

return 0;

}

匿名网友:

1.用C语言实现对单链表的基本操作

问:实现元素类型为整型(也可自定义)的单链表,主要包括初始化链表、销毁...

2.链表基本操作练习(C语言)

问:1 链表初始化创建一个链表。 2 采用头插法建立链表。 3 查询链表中某结...

3.帮我编写一个用C语言编写的单链表的建立,和输入输...

答:给你个简单的: //单链表结点类型定义 struct lnode { int data; struct lnode *next; }; typedef struct lnode LNode; //单链表的建立,创建单链表的时候其实就是实现了单链表的输入 LNode *LinkList_Creat(int n) { LNode *head,*p,*tail; int...

4.C语言链表的使用方法

问:我是菜鸟刚学C语言,对链表的使用方法不是很了解,希望哪位仁兄能举几个能...

5.C语言链表的定位操作

问:就是输入一个值 ,求出这个值在链表中在第几个结点

6.访问单链表中的各个元素,并求和,用c语言

问:访问单链表中的各个元素,并求和,用c语言

7.c语言把单链表的操作和定义放入头文件LinkedList.h...

问:就是数据结构的单链表代码 #include #include #incl...

8.c语言单链表的建立与维护

问:#define n8 struct node {int data; struct node *next; }; void create...

9.顺序表和链表的基本操作,用C语言实现!

问:1、顺序表的应用 (1).输入一组整型元素序列,建立顺序表。 (2).实现该...

10.C语言链表的定位操作

答:typedef struct _List { int data; struct _List *next; } List; int Query(List **head, int x) { List *p = (*head)->next; int n = 1; while(p && p->data!=x) { p = p->next; n++; } if(p) return n; else return -1; }

问题推荐

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值