数据结构部分题目(c语言版本)

1.反转链表

【1】代码思想:

1、设置三个结点,分别为pre、cur、temp。其中cur指向头节点处(cur=head),pre是cur的前面,temp是cur的后面。

2、先初始化(把pre和temp置空),然后使用一个循环,把pre和temp放到上面说的位置,然后让cur和pre换位置(cur->next=pre;pre=cur;)

3.还在循环内,将pre、cur和temp均往后移动,直到循环结束即可~

【2】代码

复制代码
//结构体定义
typedef struct node{
   int val;
   struct node *next;
}ListNode;

//单链表反转
ListNode* ReverseList(struct ListNode* head) {
   ListNode *pre=NULL,*cur=head,*temp=NULL;
   while(cur!=NULL){
    temp=cur->next;//保存当前结点的下一个结点
    cur->next=pre;//交换
    pre=cur;//交换
    cur=temp;//结点后移
  }
  return pre;
}

2.判断回文字符串:回文是正着反着都相等

复制代码
bool judge(char* str ) {
  int len=strlen(str);
  int i=0;
  int j=len-1;
  while(i<=j){
   if(str[i]!=str[j]){
   return false;
   }
   i++;
   j--;
  }
  return ture;
}

3.反转字符串

复制代码
char* solve(char* str ) {
  int len=strlen(str);
  int i=0;
  int j=len-1;
  while(i<=j){
   char temp=str[i];
   str[i]=str[j];
   str[j]=temp;
   i++;
   j--;
  }
  return str;
}

4.斐波那契数列:前两项为1,第三项开始,该项等于前两项的和

复制代码
int Fibonacci(int n ) {
  if(n==0||n==1){
    return 1;
  }
  int a[41];//n小于等于40
  a[1]=a[2]=1;
  for(int i=3;i<=n;i++){
   a[i]=a[i-1]+a[i-2];
  }
  return a[n];
}
相关推荐
你怎么知道我是队长3 小时前
C语言---枚举变量
c语言·开发语言
李慕婉学姐3 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·开发语言·数据库
吃茄子的猫3 小时前
quecpython中&的具体含义和使用场景
开发语言·python
云栖梦泽3 小时前
易语言中小微企业Windows桌面端IoT监控与控制
开发语言
数据大魔方3 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)
开发语言·数据库·python·mysql·算法·github·程序员创富
Edward.W5 小时前
Python uv:新一代Python包管理工具,彻底改变开发体验
开发语言·python·uv
小熊officer5 小时前
Python字符串
开发语言·数据库·python
月疯5 小时前
各种信号的模拟(ECG信号、质谱图、EEG信号),方便U-net训练
开发语言·python
荒诞硬汉5 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国5 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos