首页 > 其他分享 >数据结构周测错题小结

数据结构周测错题小结

时间:2024-04-28 22:34:44浏览次数:23  
标签:head struct 周测 int void list 错题 数据结构 stack

小题:

1、若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()

A.函数的实参和其对应的形参共占同一存储单元

B.形参只是形式上的存在,不占用具体存储单元

C.同名的实参和形参占同一存储单元

D.函数的形参和实参分别占用不同的存储单元

参考答案:D

2、假定一个顺序存储的循环队列的队头和队尾下标分别为front和rear,队列容量为MaxSize ,则判断队满的条件为

(rear+1)%MaxSize == front|||front==(rear+1)%MaxSize  

代码题:

1、请编写一个函数strip, 用来删除字符串中的所有空格。例如, 输入apple tree, 则输出为 appletree。字符串从键盘输入。

void strip(char *s)
{
    int i,j;  
    for(i=0;s[i];i++)  
    {   
     if(s[i]==' ')   
     {    
       for(j=i;s[j];j++)    
       {       
          s[j]=s[j+1];
       }   
     }   
    }
} 
int main (void) 
{    char s[200];
    bzero(s, 200);
    printf("input:");
    fgets(s, 200, stdin);
    strip(s);
    printf("%s",s);
}

2、编写一个函数,实现单链表逆序,无需实现单链表的具体细节,函数原型如下:
void reverse_list(single_list *head);

void reverse_list(single_list *head)
{
     single_list *p = head->next; //将链表除头节点的节点保存
     head->next = NULL;//将链表断开
     single_list *tmp = NULL;
     while(p != NULL)
     {
        tmp = p->next;//将后面还未逆序的节点保存

        //将p插入到head的后面
        p->next = head->next;
        head->next = p;

       //将tmp的值赋给p
        p = tmp;
     }
}

3、现在已经有如下接口函数(无需实现以下函数)
struct stack *stack_init(); //初始化栈
void push(struct stack *stack,int num); //压栈
bool pop(struct stack *stack); //出栈
int get_top(struct stack *stack); //获取栈顶元素
bool isEmpty(struct stack *stack); //判断栈是否为空
请你利用以上方法实现将键盘输入的十进制数,转换为十六进制输出

int main(void)
{    
   struct stack *s = stack_init();    
   printf("请输入一个十进制数:");   
   int num;    
   scanf("%d",&num);    
   while(num)    
   {        
      push(s,num%16);  
      num /= 16;         
   }    
   int data;    
   char buf[20];    
   int len = 0;    
   while(!isEmpty(s))   
   {        
      data = get_top(s);        
      if(!pop(s))            
        break;        
      if(data >= 10)       
      {           
         buf[len++] = data+55;        
      }        
      else        
      {           
         buf[len++] = data+48;       
      }  
    }   
    printf("0x%s\n",buf);
}

标签:head,struct,周测,int,void,list,错题,数据结构,stack
From: https://www.cnblogs.com/luo-tt/p/18164642

相关文章

  • 王道数据结构第一章个人向笔记
    目录1.1.0导读1.1.1绪论1.1.2数据结构的三要素逻辑结构数据的运算物理结构(存储结构)1.2.1算法的基本概念1.2.2时间复杂度1.2.3空间复杂度1.1.0导读数据结构在学什么?如何用程序代码把显示世界的问题信息画如何用计算机高效地处理这些信息从而创造价值1.1.1绪论数据......
  • 数据结构与算法学习(1)——BFS(广度优先搜索)
    BFS基础BFS会从根节点开始搜索,在每一个路口面临分叉的时候,先把每个岔路记录下来,然后再去一个一个的往前走一步。节点进行广度优先搜索的顺序题目PS:下列题目均来自leetcode中灵神题单1311.获取你好友已观看的视频......
  • 数据结构_链表_双向循环链表的初始化、插入、删除、修改、查询打印(基于C语言实现)
    版本:2024年4月26日V1.0发布于博客园/***@filename:DoubleLinkedList.c*@brief:实现双向循环链表的相关功能*@author:RISE_AND_GRIND@163.com*@date:2024/04/26*@version:1.0*@note:*CopyRight(c)2023-2024RISE_AND......
  • 数据结构——链式栈
    二、链式栈构造链式栈//链式栈的有效数据类型,用户可以根据需要进行修改typedefintDataType_t;//构造单链式栈的结点typedefstructLinkedStack{DataType_tdata;//结点的数据域structLinkedStack*next;//结点的的指针域}LinStack_t......
  • 数据结构(笔试题-栈(入栈出栈)
    笔试题:实现//利用栈s1和s2实现队列,栈的思想是“后进先出”,队列的思想是“先进先出”,可以选择把栈s1作为入队缓存,把栈s2作为出队缓存//入队boolenQueue(s1,s2,intx){ inttemp;//用于存储出栈的元素的值 //1.判断栈s1是否已满,此时分为两种情况(满了or未满) if(s......
  • 数据结构—单链表队列头删尾插
    单链表队列的头删尾插/*************************************************/***@filename: 单链表队列的头删尾插.md*@brief实现对单链表队列的头删尾插*@author15070884254@163.com*@date2024/04/26*@version1.0:在下坂本,有何贵干*@property:no......
  • C语言数据结构:链式队列的创建及其出入队操作
    /**********************************************************************************************************该程序实现链式队列元素的增删改查,目的是提高设计程序的逻辑思维,另外为了提高可移植性,所以链式队列中元素*的数据类型为DataType_t,用户可以根据实际情况修改......
  • 数据结构-链表-2
    本函数功能为将查找单链表中的倒数第k个结点将其data输出<!--RevCount.c文件(查找单链表中的倒数第k个结点将其data输出)的实现-->/*******************************************************************************funcname:LinList_RevCount*function:......
  • 数据结构算法题
    数据结构算法题通过键盘输入一个包括'('和')'的字符串string,判断字符串是否有效。要求设计算法实现检查字符串是否有效,有效的字符串需满足以下条件:A.左括号必须用相同类型的右括号闭合。B.左括号必须以正确的顺序闭合。C.每个右括号都有一个对应的相同类型的左括号。思......
  • C语言数据结构:顺序栈的创建、出入栈,以及使用顺序栈实现十进制转十六进制
    /***********************************************************************************************************该程序实现顺序栈元素的增删改查,目的是提高设计程序的逻辑思维,另外为了提高可移植性,所以顺序栈中元素的*数据类型为DataType_t,用户可以根据实际情况修改......