数据结构
蜗牛赶不上黄鹂鸟
这个作者很懒,什么都没留下…
展开
-
c语言实现链栈的基本操作
带头节点的链栈的基本操作#include <stdio.h>#include<stdlib.h>#define true 1;#define false 0;typedef struct StackNode{ int data; struct StackNode *next; }StackNode;StackNode *InitStack(StackNode *S){//初始化链栈,链栈不需要栈顶指针,其头节点就是栈顶指针 S = (StackNode *)原创 2021-11-02 03:20:39 · 356 阅读 · 0 评论 -
c语言版顺序栈的基本操作
c语言版顺序栈的基本操作#include <stdio.h>#include <stdlib.h>#define MaxSize 20#define false 0#define true 1;typedef struct SqStack{ int data[MaxSize]; int top; }SqStack;void InitStack(SqStack *S){//初始化顺序栈 S->top=-1; }int Push(原创 2021-10-31 02:31:11 · 326 阅读 · 0 评论 -
带头节点的双链表的增删改查(c语言版)
@带头节点的双链表的增删改查本程序基本由上一篇中的单链表增加了前驱节点更改而来。#include<stdio.h>#include<stdlib.h>typedef struct LNode{ int data; struct LNode *prior,*next;}LNode;LNode * List_HeadInsert(int n){//尾插法创建一个有n个节点且带头节点的单链表 LNode *head,*s,*p; int a; head = (L原创 2021-10-31 00:49:43 · 105 阅读 · 0 评论 -
c语言编写的顺序表的增删改查
c语言编写的顺序表的增删改查#include <stdio.h>#define MaxSize 20typedef struct List{ int data[MaxSize]; int length;}SqList;int ListInitiate(SqList *L){ L->length=0; return 0;}int InsertList(SqList *L,int a,int b){ if(a<1||a>L->length+1|原创 2021-10-30 18:17:37 · 246 阅读 · 0 评论 -
c语言编写的带头节点的增删改查
c语言编写的带头节点的增删改查// 带头节点的链表的增删改差#include <stdio.h>#include<stdlib.h>#include <time.h>typedef struct LNode{ int data; struct LNode *next;}LNode;LNode * create(int n){//创建一个有n个节点且带头节点的单链表 LNode *head,*p,*s; int a; head = (LNode原创 2021-10-30 18:14:41 · 106 阅读 · 0 评论 -
选择排序
选择排序下面展示一些 内联代码片。#include<stdio.h>int swap(int *a,int* b){//进行数字的调换 int temp=*b; *b=*a; *a=temp; } int select(int a[],int n)//对数组进行选择排序{ int i=0; for(i;i<n;i++){ int k=i; int j=i; for(j;j<n;j++){ if(a[j]<a[k]){原创 2020-06-10 22:32:23 · 95 阅读 · 0 评论 -
挖掘机技术哪家强
挖掘技术哪家强为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。#include<stdio.h>int main(){ int score,school[100000]={0};int n;scanf("%d",&n);for(int i=0;i<n;i++){ int s; scanf("%d %d",&s,&score); school[s]+=score;}int max原创 2020-06-03 21:24:32 · 140 阅读 · 0 评论 -
卡拉兹设想(c语言版)
卡拉兹设想对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉兹是在蓄意延缓美国数学界教学与科研的进展……本次不是证明卡拉兹猜想,正整数n(不超过int的表示范围),简单地数一下,需要多少步(砍几下)才能得到n=1原创 2020-06-02 19:19:45 · 3383 阅读 · 0 评论 -
冒泡排序
冒泡排序#include<stdio.h>int main(){ int a[4]; for(int i=0;i<4;i++){ scanf("%d",&a[i]); } //将数组赋值 for(int i=1;i<4;i++){//要进行n—1趟 for(int j=0;j<5-j;j++)//每一趟要比较到最后一个数,所以每次比较,最大的数往后移,只需要第一个数到第5-j个数 if(a[j]>a[j+1]){ int te原创 2020-06-02 17:49:00 · 136 阅读 · 0 评论 -
swap()函数
关于SWAP()函数#include<stdio.h>int swap(int *a,int *b)/*为什么要用指针变量才能进行交换,因为是将地址传送到指针变量a和b里面。 改变了地址里面的值,导致发生了改变,而如果用swap(int a ,int b), 仅仅是将数字传入到了a和b里面,这个a和b与主函数无关,不作用与主函数里面的a和b 主函数里面的值不发生改变*/ { int temp; temp=*a原创 2020-06-02 17:43:51 · 368 阅读 · 0 评论