导航:网站首页 >
用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; }
问题推荐