小编Ann*_*sie的帖子

单链表的时间复杂度

我正在研究数据结构:单链表。

该网站称单向链表的插入和删除时间复杂度为O(1). 我错过了什么吗?

网站链接

在此处输入图片说明

我用 C++ 做这个,我只有一个root pointer. 如果我想在最后插入,那么我必须一直走到后面,这意味着O(n).

c++ big-o linked-list time-complexity data-structures

11
推荐指数
1
解决办法
2万
查看次数

在C++中实现hash-table

以下是使用C++实现哈希表.你能帮我理解一下HashEntry **table是什么吗?为什么它被声明为双指针?它是一个数组,数组的每个值是HashEntry

  class HashEntry {
    private:
          int key;
          int value;
    public:
          HashEntry(int key, int value) {
                this->key = key;
                this->value = value;
          }

          int getKey() {
                return key;
          }

          int getValue() {
                return value;
          }
    };

    const int TABLE_SIZE = 128;






    class HashMap {
    private:
          HashEntry **table;
    public:
          HashMap() {
                table = new HashEntry*[TABLE_SIZE];
                for (int i = 0; i < TABLE_SIZE; i++)
                      table[i] = NULL;
          }

          int get(int key) {
                int hash = (key % …
Run Code Online (Sandbox Code Playgroud)

c++ hash hashtable hashmap

5
推荐指数
1
解决办法
7342
查看次数

混淆数据地址对齐

我对提供的答案有疑问

@ dan04.什么是对齐的内存分配?

特别是,如果我有这样的事情:

int main(){
      int num;  // 4byte
      char s;   // 1byte
      int *ptr;


}
Run Code Online (Sandbox Code Playgroud)

如果我有一台32位机器,你认为默认情况下它仍会填充数据吗?

在上一个问题中,它被问及struct,我在询问有关变量main.

更新:

a = 2 bytes 
b = 4 bytes
c = 1 byte
d = 1 byte



 0 1 2 3 4 5 6 7
|a|a|b|b|b|b|c|d|  bytes
|       |       |  words
Run Code Online (Sandbox Code Playgroud)

c c++ memory-alignment

3
推荐指数
1
解决办法
87
查看次数