三九宝宝网宝宝教育教学论文

C语言链表操作

12月24日 编辑 39baobao.com

[C语言程序设计输入4个整数要求按由小到大的顺序输出怎么做啊]//本实例采用冒泡排序法对整数型数组元素进行排序。 //冒泡排序法的基本思想:(以升序为例)含有n个元素的数组原则上要进行n-1次排序。对于每一躺的排序,从第一个数开始,依次比较...+阅读

包括链表的创建删除添加和释放操作!! #include#includestruct node *create(); void print_list(struct node *head); struct node * insert_node(struct node *h,int x,int y); struct node * delete_node(struct node *h,int z); void shifang(struct node *head); struct node { char data; struct node *next; }; void main() { struct node *head; int x,y,z; head=create(); print_list(head); printf("\n输入插入结点的位置的值和插入的数值:"); scanf("%d%d",&x,&y); head=insert_node(head,x,y); print_list(head); printf("\n输入要删除的结点:"); scanf("%d",&z); head=delete_node(head,z); print_list(head); printf("\n释放链表.\n"); } struct node *create() //建立链表函数 { printf("请输入各节点(以-1结尾):\n"); int x; //定义指针*head,*tail,*s; struct node *head,*tail,*s; //head和tail初始化,生成一个头结点 head=tail=(struct node *)malloc(sizeof(struct node)); //在循环中,生成新结点、赋值、连接、尾指针后移 scanf("%d",&x); while(x!=-1) { s=(struct node *)malloc(sizeof(struct node)); s->data=x; tail->next=s; tail=s; scanf("%d",&x); } //尾结点的指针域赋NULL tail->next=NULL; return head; } void print_list(struct node *head) //输出链表函数 { //定义工作指针*p并赋初值p=head->next;即指向第一个结点 struct node *p; p=head->next; //判断链表是否为空,空:输出空表的信息,否则:输出所有结点 if(p==NULL) printf("The list is NULL."); else //在循环中输出当前结点,工作指针后移 { printf("head->"); while(p!=NULL) { printf("%d->",p->data); p=p->next; } printf("end."); } } struct node * insert_node(struct node *h,int x,int y) //添加结点函数 { struct node *p,*q,*s; //生成要插入的新结点 s=(struct node *)malloc(sizeof(struct node)); s->data=y; q=h; p=h->next; //查找要插入结点的位置 while((p!=NULL)&(p->data!=x)) { q=p; p=p->next; } //插入结点 q->next=s;s->next=p; return(h); } struct node * delete_node(struct node *h,int z) //删除结点函数 { struct node *p,*q; q=h; p=h->next ; //查找要删除结点的位置 if(p!=NULL) { while((p!=NULL)&(p->data!=z)) { q=p; p=p->next; } //释放结点 if(p->data ==z) { q->next=p->next ; free(p); } } return(h); } void shifang(struct node *head) //释放链表函数 { struct node *p; //逐个释放结点 while(head!=NULL) { p=head; head=head->next; free(p); } }

以下为关联文档:

C语言程序设计实现输入20个整数数据按从大到小排序计算出#include<stdio.h> int main() { int a[20],i,j,s; double sum=0,average; for(i=0;i<20;i++){ scanf("%d",&a[i]); sum+=a[i]; } average=sum/20; for(i=1;i<20;i++) for(j=0...

C语言程序设计输入4个数字要求由小到大顺序输出#include<stdio.h> void main() { int a[4],i,j,k; printf("please input four numbers:\n"); for(i=0;i<4;i++) scanf("%d",&a[i]); printf("before Sorting the number is:\n");...

用C语言实现链表的算法这个是我们数据结构上机实验的链表问题, #include<stdio.h> #include<malloc.h> #define LEN sizeof(LinkNode) typedef int Datatype; typedef int Status; typedef struct...

求数据结构线性链表的C语言程序实例这是单链表的创建,取元素,添加,删除和销毁等功能实例: #include#include#define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 typedef int Status; typedef int ElemT...

用C语言实现数据结构中常用算法如对链表的操作查找排序等#include <iostream.h> class ram { public: char wenzi[200]; ram *p; }; ram wo,*ai=&wo; int num=0;//我申请了几次内存了 void xie(void);//输入数据,然后分配内存为下次做...

数据结构c语言描述链表的倒叙输出其实就是栈链,我写了个,你可以参考下 #include#includetypedef struct Node { int data; struct Node *next; }List; void Print(List *top)//打印 { List *p; p=top; while(p...

急数据结构用C语言创建链表#include#includetypedef struct node *pointer; struct node { int data; pointer next; }; pointer next,null,p,L,s,q; int j,e,n,k; creater(int n) { int i; L=(struct...

高手速度来跪求数据结构用C语言编写 1创建链表 L要用到以下函数以前的实验题。 #define OK 1 #define NULL 0 #define ERROR 2 #define ElemType int #include "iostream.h" #include "stdio.h" #include "stdlib.h" typedef struct LNode { in...

数据结构用C语言实现基于链表的学生成绩管理系统根据学号和看可以不咯?#includeintavgGrade(inta[50]){inti,sum=0,max=0,min=0;doubleavg=0.0;max=a[0];min=a[0];for(i=0;imax)max=a[i];if(a[i]a[i]){temp=a[i];a[i]=a[j];a[j]=temp;...

推荐阅读
图文推荐